rake db:migrate VERSION=0 是如何工作的?

How does rake db:migrate VERSION=0 work?

我是 ruby 的新手。我收到这个错误

 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 怎么解决呢? 如果不是,为什么我会收到那个错误?

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

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

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