2013-10-12 3 views
0

У меня есть приложение rails, которое имеет довольно разбитое отношение таблицы, которое я пытаюсь очистить.Переместить существующие данные таблицы соединений в другую таблицу соединений

В настоящее время у меня есть Продукт и Лицо, и между ними находятся три разных таблицы соединения: художники, авторы и обложки.

Я пытаюсь перенести данные из трех существующих таблиц соединений в новую таблицу соединений, называемую создателями. В число новых создателей входят столбец ролей.

Это мой файл миграции для перемещения данных из одного из трех объединений в новый. Однако, когда я запускаю это, я не вижу никаких данных в новой таблице.

def up 
    execute <<-SQL 
    UPDATE creators 
    SET product_id = products_artists.product_id, 
     person_id = products_artists.person_id, 
     role = 'artist' 
    FROM products_artists 
    SQL 
end 

def down 
    execute <<-SQL 
    UPDATE products_artists 
    SET product_id = creators.product_id, 
     person_id = creators.person_id 
    FROM creators 
    WHERE creators.role = 'artist' 
    SQL 
end 

Любая помощь была бы принята с благодарностью.

ответ

0

Ahhh, я искал вставку не обновление.

def up 
    execute <<-SQL 
    INSERT INTO creators (product_id, person_id, role, created_at, updated_at) 
    SELECT product_id, person_id, 'artist', current_timestamp, current_timestamp 
    FROM products_artists 
    SQL 
end 

def down 
    execute <<-SQL 
    INSERT INTO products_artists (product_id, person_id) 
    SELECT product_id, person_id 
    FROM creators 
    WHERE role = 'artist' 
    SQL 
end 
Смежные вопросы