对于我的迁移,我有一个类似的结构
site
目录包含只需要在单独的数据库上运行的迁移。我有一个工作rake任务
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
,它还会将站点目录迁移到整个数据库...如何防止迁移此文件夹?
答案 0 :(得分:1)
Rails希望迁移位于db/migrate
,并且在运行它们时会覆盖该目录中的所有内容(请参阅:the docs)。
如果您希望某些迁移由于某种原因而保留,则需要将其移出db/migrate
并让您的自定义佣金任务指向该目录。