2012-02-19 17 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