Вы можете сделать это в двух местах, в своем SQL или в вашем приложении.
Через запрос SQL:
SELECT * FROM table_a
UNION
SELECT * FROM table_b;
В вашем приложении Rails:
a = A.all
b = B.all
ab = a + b
Достаточно просто.
ОБНОВЛЕНИЕ: Поскольку вы хотите сделать это изменение навсегда, вы должны создать миграцию, которая объединит две таблицы вместе.Это позволит Rails знать, что происходит, и позволит вам перенастроить вашу производственную базу данных аналогичным образом.Поскольку ActiveRecord не имеет встроенной таблицы слияния, вы должны выполнить необработанный SQL-запрос в своей миграции следующим образом:
class MergeTableAWithTableB < ActiveRecord::Migration
def self.up
execute "INSERT INTO `table_a` (field_1, field_2, field_3) SELECT (field_1, field_2, field_3) FROM `table_b`;"
drop_table :table_b
end
def self.down
raise IrreversibleMigration
end
end
Затем запустите rake db:migrate
в командной строке, чтобы выполнить это действие.
Это дает эффект повторного индексирования строк из table_b, так как перемещение их в table_a приведет к конфликту первичных идентификаторов.