【发布时间】:2014-11-28 11:22:13
【问题描述】:
[导轨 4.1.6,红宝石 2.1.3p242]
1.设置 database.yml database: bookshop ,并在我的数据库中创建 bookshop 数据库。
2.通过SQL创建一个新表books和id int(10), name varchar(45)(我使用MySQL)。
3.一切正常,我可以在浏览器中打开项目了。
在我成功输入rails g scaffold Book id:integer name:string 后,事情变得有点奇怪。
但是,当我重新启动 rails 项目时,浏览器就出来了
“正在等待迁移。要解决此问题,请运行:bin/rake db:migrate RAILS_ENV=development”
-
bin/rake db:migrate RAILS_ENV=development它显示
== 20141003105907 CreateBooks:迁移 ====================================== -- create_table(:books) 耙中止! StandardError:发生错误,所有后续迁移都已取消:
您不能重新定义主键列“id”。要定义自定义主键,请将 { id: false } 传递给 create_table./usr/local/...
【问题讨论】:
-
创建 Book 表后,您必须将其迁移到数据库中,因此它等待您进行表的迁移,并且表的 id 会自动创建您不需要'不必定义它
-
我创建了表
books,然后我使用scaffold。那么,我所做的顺序错误? -
您是否尝试在不定义 id 的情况下销毁表并重新创建它?
-
在我手动放下我的表'books'后,它又可以工作了!再次感谢你! :)