【问题标题】:Rails: Alter migrations during early development phasesRails:在早期开发阶段改变迁移
【发布时间】:2010-08-15 15:16:21
【问题描述】:

在 Rails 应用程序开发的早期阶段,我更喜欢直接修改迁移文件以将新列(字段)添加到我的表(模型)中,而不是堆积迁移来更改字段和/或进行细微更改.

这在 Rails 中可行吗?

【问题讨论】:

    标签: ruby-on-rails migration


    【解决方案1】:

    我运行以下命令来解决这个问题。将其保存在脚本中,您就可以开始了!当然,这假设丢失数据是好的。在任何情况下,加载固定装置都很容易添加到这个脚本中。

    #!/bin/sh
    rake db:drop
    rake db:create
    rake db:migrate --trace
    

    PS:给我这个想法的朋友称这个脚本为 rake_dance :)

    【讨论】:

      【解决方案2】:

      大概你正在做的事实表明它是可能的!

      【讨论】:

        【解决方案3】:

        从 Vijay Dev 的解决方案驱动的最干净的解决方案是创建一个 rake 任务:

        namespace :db do
          desc "Drops, recreates and seeds the database."
          task :reload => [:drop, :create, :migrate, :seed] do
            Rake::Task['db:drop'].invoke
            Rake::Task['db:create'].invoke
            Rake::Task['db:migrate'].invoke
            Rake::Task['db:seed'].invoke
          end
        end
        

        【讨论】:

          【解决方案4】:

          db:reset 执行 Omar 的建议。

          【讨论】:

            【解决方案5】:

            我建议在采用这种方法时使用固定装置(因为它允许在删除数据库以重新创建后快速为应用程序重新创建示例数据)。另一个选项是http://datamapper.org/(不需要迁移)。

            【讨论】:

              【解决方案6】:

              发现我们可以在一个命令中组合所有内容:

              rake db:drop db:create db:migrate db:seed
              

              使用 shell 别名可以轻松重做所有旧迁移。

              【讨论】:

              • 这或多或少是 rake db:setup 所做的。
              猜你喜欢
              • 2020-12-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2017-07-21
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多