Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 将现有联接表数据移动到另一个联接表_Sql_Ruby On Rails_Join_Rails Migrations - Fatal编程技术网

Sql 将现有联接表数据移动到另一个联接表

Sql 将现有联接表数据移动到另一个联接表,sql,ruby-on-rails,join,rails-migrations,Sql,Ruby On Rails,Join,Rails Migrations,我有一个rails应用程序,它有一个非常破碎的表关系,我正试图清理它 目前我有一个产品和一个人,他们之间有三个不同的联接表:艺术家、作者和封面艺术家 我正在尝试将数据从三个现有联接表迁移到一个名为creators的新联接表中。新创建者加入包括一个角色列 这是我的迁移文件,用于将数据从三个联接之一移动到新联接中。 但是,当我运行此命令时,在新表中看不到任何数据 def up execute <<-SQL UPDATE creators SET product_id

我有一个rails应用程序,它有一个非常破碎的表关系,我正试图清理它

目前我有一个产品和一个人,他们之间有三个不同的联接表:艺术家、作者和封面艺术家

我正在尝试将数据从三个现有联接表迁移到一个名为creators的新联接表中。新创建者加入包括一个角色列

这是我的迁移文件,用于将数据从三个联接之一移动到新联接中。 但是,当我运行此命令时,在新表中看不到任何数据

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
def up

执行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
def up
执行