2012-02-19 57 views
0

我想为MongoDB运行数据转换/迁移。我在stackoverflow上找到了mongo_mapper_ext gem,但我想我对于一般的迁移非常陌生,以至于我不知道如何使用它。Mongo_Mapper_Ext由Alexey Patrushin创建的Gem ...如何创建迁移?

我的Rails应用程序部署在Heroku上。所以我认为,一旦我写入迁移并将其推送到heroku,我应该能够运行heroku rake:db migrate。这是正确的,还是应该迁移到应用程序初始化程序中?

当我写的迁移本身,哪里该文件在我的应用程序目录中去吗?

https://github.com/alexeypetrushin/mongo_mapper_ext

上做到这一点的最好办法任何意见将是这样的帮助。谢谢!

回答

1

如果你看一下mongo_mapper_ext的rake任务,它看起来像你会把在数据库目录中的迁移文件(S)在你的Rails应用程序。

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 
+0

感谢。我最终得到了[Mongrations](https://github.com/terrbear/mongrations),特别是[最近更新的fork](https://github.com/terrbear/mongrations/network)。 – colllin 2012-02-29 21:48:07