【问题标题】:How does rake db:migrate VERSION=0 work?rake db:migrate VERSION=0 如何工作?
【发布时间】:2015-04-30 07:53:18
【问题描述】:

我是红宝石新手。我收到了这个错误

 bundle exec rake db:migrate

== 20150423205259 AddActivationToUsers: migrating =============================
-- add_column(:users, :activation_digest, :string)
rake aborted!
StandardError: An error has occurred, this and all later migrations canceled:

SQLite3::SQLException: duplicate column name: activation_digest: ALTER TABLE "users" ADD "activation_digest" varchar/home/myusername/.rvm/gems/ruby-2.2.0/gems/sqlite3-1.3.9/lib/sqlite3/database.rb:91:in `initialize'

当我运行 rake db:migrate VERSION=0 时它已解决 如果我真的有重复的列名,rake db:migrate VERSION=0 如何解决它? 如果不是,为什么我会收到这个错误?

【问题讨论】:

  • Active Record Migrations中描述的不错
  • 好的,但为什么会出现这个错误?我检查了我的架构,没有任何问题。
  • 发布您的迁移文件
  • @user1181065 只是为了您未来的问题。 寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。

标签: ruby-on-rails ruby dbmigrate


【解决方案1】:

它基本上运行第一次迁移。您可以指定要将数据库迁移到的任何版本号。

您可能在同一个模型上执行了两次“rails generate model ....”,但没有破坏其中一个迁移,它仍然存在于“db/migrate/”文件夹中。

我建议您阅读一些关于迁移的内容here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-09
    • 2012-05-15
    • 2018-10-06
    • 1970-01-01
    • 2012-04-08
    相关资源
    最近更新 更多