我想为MongoDB运行数据转换/迁移。我在stackoverflow上找到了mongo_mapper_ext gem,但我想我对迁移这么新,我不知道如何使用它。
My Rails应用程序部署在heroku上。所以我认为一旦我编写了迁移并将其推送到heroku,我应该能够运行heroku rake:db migrate。这是正确的,还是应该在应用程序初始化程序中运行迁移?
当我编写迁移本身时,该文件在我的app目录中的哪个位置?
https://github.com/alexeypetrushin/mongo_mapper_ext
任何有关最佳方法的建议都会非常有帮助。谢谢!
答案 0 :(得分:1)
如果查看mongo_mapper_ext的rake任务,看起来你会将迁移文件放在rails应用程序下的db目录中。
namespace :db do
desc "Migrate Database"
task migrate: :environment do
::Migration = MongoMapper::Migration
Dir["#{rad.config.runtime_dir!}/db/**/*.rb"].each{|f| require f.sub(/\.rb$/, '')}
database_alias = ENV['d'] || ENV['database']
database_alias = 'default' if database_alias.blank?
version = ENV['v'] || ENV['version']
if version.blank?
size = MongoMapper::Migration.definitions[database_alias].size
highest_defined_version = size == 0 ? 0 : size - 1
version = highest_defined_version
else
version = version.to_i
end
MongoMapper::Migration.update database_alias, version
end
end