【问题标题】:Mongo_Mapper_Ext gem by Alexey Patrushin... how to create a migration?Alexey Patrushin 的 Mongo_Mapper_Ext gem...如何创建迁移?
【发布时间】:2012-02-19 02:39:30
【问题描述】:

我想为 MongoDB 运行数据转换/迁移。我在 stackoverflow 上找到了 mongo_mapper_ext gem,但我想我对迁移很陌生,所以我不知道如何使用它。

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

当我编写迁移本身时,该文件在我的应用程序目录中的什么位置?

https://github.com/alexeypetrushin/mongo_mapper_ext

任何关于最佳方式的建议都会很有帮助。谢谢!

【问题讨论】:

    标签: ruby-on-rails mongodb mongomapper rails-migrations


    【解决方案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
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-27
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多