Rails:使用脚手架后,我无法迁移

时间:2014-10-03 11:39:53

标签: ruby-on-rails scaffold

[rails 4.1.6,ruby 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"

  1. bin/rake db:migrate RAILS_ENV=development显示
  2. == 20141003105907 CreateBooks:迁移====================================== - create_table(:books) 耙子流产了! StandardError:发生错误,所有以后的迁移都被取消:

    您无法重新定义主键列&id;#39;。要定义自定义主键,请将{id:false}传递给create_table./usr/local /...

1 个答案:

答案 0 :(得分:4)

默认情况下会将ID字段添加到模型中 - 您不需要自己添加它们。

使用rails destroy scaffold Book销毁您制作的脚手架,然后重新创建 - 这次没有id:integer字段。