function migrate_drupal_update_8901

Add revision ID to entity reference translation migrate_map tables..

File

core/modules/migrate_drupal/migrate_drupal.install, line 22

Code

function migrate_drupal_update_8901(&$sandbox) {
    $schema = Database::getConnection()->schema();
    $table_expression = 'migrate_map%entity_reference_translation%node%';
    $tables = $schema->findTables($table_expression);
    foreach ($tables as $table) {
        // Move language code to sourceid3.
        $spec = [
            'type' => 'varchar',
            'length' => 12,
            'not null' => TRUE,
        ];
        $schema->changeField($table, 'sourceid2', 'sourceid3', $spec);
        // Add revision ID.
        $spec = [
            'type' => 'int',
            'unsigned' => TRUE,
            'not null' => TRUE,
            'default' => 0,
        ];
        $schema->addField($table, 'sourceid2', $spec);
        // Add sourceid2 to index.
        $spec = [
            'fields' => [
                'sourceid1' => [
                    'type' => 'int',
                    'not_null' => TRUE,
                ],
                'sourceid2' => [
                    'type' => 'int',
                    'not_null' => TRUE,
                ],
                'sourceid3' => [
                    'type' => 'varchar',
                    'length' => 12,
                    'not null' => TRUE,
                ],
            ],
        ];
        $fields = [
            'sourceid1',
            'sourceid2',
            'sourceid3',
        ];
        $schema->dropIndex($table, 'source');
        $schema->addIndex($table, 'source', $fields, $spec);
    }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.