我有一个类似这样的结构来进行迁移
site目录包含只需要在单独的DB上运行的迁移。我有个工作任务要做
desc "Migrate the database through scripts in db/migrate/site."
namespace :db do
task :sites => :environment do
@sites = Site.all()
for site in @sites do
conn_config = ActiveRecord::Base.connection_config
conn_config[:database] = site.id
ActiveRecord::Base.establish_connection conn_config
ActiveRecord::MigrationContext.new("db/migrate/site/").migrate
end
end
end但是,如果我为默认数据库运行bin/rails db:migrate,它也会运行站点目录迁移到整个数据库.如何防止迁移此文件夹?
发布于 2018-04-19 14:27:32
Rails希望迁移在db/migrate中,并且在运行这些迁移时它会将目录中的所有内容全局化(参见:医生们)。
如果出于某种原因希望保持某些迁移的本地化,则需要将它们移出db/migrate,并让您的自定义rake任务指向该dir。
https://stackoverflow.com/questions/49920890
复制相似问题