【问题标题】:Editing migrations after deployment to production在部署到生产后编辑迁移
【发布时间】:2013-01-30 20:59:40
【问题描述】:

我正在完成对应用程序的重大重构,并且正在尝试清理迁移。我已经进行了更改,并且在重置和重新迁移数据库后,一切都在本地运行良好。

在生产中,我无法运行迁移。我已经尝试了所有我能想到的重置、丢弃等组合,但我不断收到此错误。

生产数据库似乎没有被重置,这导致迁移中断。任何提示将不胜感激。

==  AddFieldsToUsers: migrating ===============================================
-- add_column(:users, :company, :string)
rake aborted!
An error has occurred, this and all later migrations canceled:

SQLite3::SQLException: duplicate column name: company: ALTER TABLE "users" ADD "company" varchar(255)

【问题讨论】:

  • 如果你需要“重新创建”你的数据库,你不能使用迁移。为此使用rake db:schema:load 任务。
  • @jdoe 我鼓励所有给出出色答案的人将它们写成答案,以便他们可以被接受和投票! :-)

标签: ruby-on-rails database ruby-on-rails-3 rails-migrations


【解决方案1】:

要重置数据库,您可以在生产模式下再次删除和迁移数据库。

rake db:drop db:create db:migrate RAILS_ENV=production

而且,如果你想编辑一些特定的迁移,你可以使用它的版本号来重置它。

rake db:migrate:down VERSION=<version no.> RAILS_ENV=production

编辑迁移文件,然后

rake db:migrate:up VERSION=<version no.> RAILS_ENV=production

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-06
    相关资源
    最近更新 更多