当我为基本的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'
答案 0 :(得分:1)
我想这是因为你的email
表中已经有users
列(之前的迁移添加了它,可能是创建了表)和你正在运行的Devise迁移({{ 1}})正试图重新添加它。是这样的吗?
如果是,请打开首先创建201
30804201341_add_devise_to_users.rb
表的迁移文件,然后删除创建users
列的行(它看起来像email
)。关闭Rails服务器,然后执行以下操作。
t.string :email
答案 1 :(得分:0)
首次出发时我遇到了这个问题。我总是通过重置数据库来解决它。您已经创建了一个列,因此重置它可能会有效。
运行
bundle exec rake db:reset
比
bundle exec rake db:create
最后
bundle exec rake db:migrate