0

当我为基本的 RoR 网站运行 bundle exec rake db:migrate 时,我遇到了这个错误。我是一个初学者,在这个站点和 Treehouse 上发现了类似的错误,但是这个错误的后半部分没有发现(从 NOT NULLC 开始)。我仍然不确定如何解决这个问题 - 任何人都可以建议吗?我在 Windows 上运行它。

SQLite3::SQLException: duplicate column name: email: ALTER TABLE "users" ADD "em
ail" varchar(255) DEFAULT '' NOT NULLC:/Sites/code/omrails-master/db/migrate/201
30804201341_add_devise_to_users.rb:5:in `block in up' 
4

2 回答 2

1

我猜这是因为您的表email中已经有了该列users(之前的迁移添加了它,可能是创建了该表)并且您正在运行的 Devise 迁移(201 30804201341_add_devise_to_users.rb)正在尝试重新添加它。是这样吗?

如果是这样,请打开首先创建表的迁移文件users并删除创建email列的行(它看起来像t.string :email)。关闭 Rails 服务器,然后执行以下操作。

$ bundle exec rake db:drop
$ bundle exec rake db:create
$ bundle exec rake db:migrate
于 2013-08-06T18:55:21.337 回答
0

我第一次开始时遇到了这个问题。我总是通过重置数据库来解决它。您已经创建了一个列,因此重置它可能会起作用。

bundle exec rake db:reset

bundle exec rake db:create

最后

bundle exec rake db:migrate
于 2013-08-06T18:36:11.610 回答