| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- <?php
- // Paranda field_emal_kasutaja_oigused: delta kasvav iga entity kohta.
- use Drupal\Core\Database\Database;
- $src = Database::getConnection('default', 'migrate');
- $dst = Database::getConnection();
- // Puhasta tabel korralikult (SQL TRUNCATE).
- $dst->query("TRUNCATE TABLE {node__field_emal_kasutaja_oigused}");
- $rid_map = [
- 1 => 'anonymous', 2 => 'authenticated', 3 => 'administrator',
- 4 => 'emal_liikmemaksud', 5 => 'emal_juhatuse_liige',
- 6 => 'emal_susteemi_administraator', 7 => 'emal_liige',
- 8 => 'emal_projektid', 9 => 'emal_raamatupidamine',
- 10 => 'filedepot', 11 => 'emal_kutsekomisjon',
- ];
- $rows = $src->query(
- "SELECT entity_id, field_emal_kasutaja_oigused_rid
- FROM {field_data_field_emal_kasutaja_oigused} WHERE deleted = 0
- ORDER BY entity_id, delta"
- );
- $n = 0;
- $delta_by_entity = [];
- foreach ($rows as $r) {
- $rid = (int)$r->field_emal_kasutaja_oigused_rid;
- if (!isset($rid_map[$rid])) continue;
- $machine = $rid_map[$rid];
- $eid = (int)$r->entity_id;
- if (!isset($delta_by_entity[$eid])) $delta_by_entity[$eid] = 0;
- $delta = $delta_by_entity[$eid]++;
- // Skip anonymous/authenticated/administrator (pole sisulised "õigused",
- // aga D7 referenceeris neid — jätame alles kõik, et mitte kaotada infot).
- $dst->insert('node__field_emal_kasutaja_oigused')
- ->fields([
- 'entity_id' => $eid,
- 'bundle' => 'emal_liige',
- 'deleted' => 0,
- 'langcode' => 'et',
- 'delta' => $delta,
- 'revision_id' => $eid,
- 'field_emal_kasutaja_oigused_value' => $machine,
- ])
- ->execute();
- $n++;
- }
- echo "field_emal_kasutaja_oigused: $n rida\n";
- echo "done\n";
|