在RoR中添加新支架时出现SQL错误

时间:2014-03-09 14:42:33

标签: ruby-on-rails scaffolding

我做了一个新的脚手架

rails generate scaffold hobbies description:text

并将其删除,因为我想添加更多字段

rails destroy scaffold hobbies

然后读了它

rails generate scaffold hobbies description:text schedule:text

现在,当我运行rake db:migrate时,我收到此错误

SQLite3::SQLException: table "hobbies" already exists: CREATE TABLE "hobbies" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255), "description" varchar(255), "created_at" datetime, "updated_at" datetime) /Users/Aeip/.rvm/gems/ruby-2.0.0-p353/gems/sqlite3-1.3.8/lib/sqlite3/database.rb:91:in `initialize'

3 个答案:

答案 0 :(得分:0)

rails d scaffold hobbies description:text

然后rails generate scaffold hobbies description:text schedule:text

答案 1 :(得分:0)

$> bundle exec rake db:drop db:create # caution: it destroys your database

然后再次运行发电机

答案 2 :(得分:0)

每次要撤消迁移时,此解决方案都不起作用,但对于您的方案,它可以正常工作,因为您需要做的就是删除业余爱好者表。

记下运行生成器时迁移文件的时间戳

rails generate scaffold hobbies description:text schedule:text
>> invoice active_record
>> create    db/migrate/20140309162533_create_hobbies.rb

由于您要删除爱好表,您需要运行迁移的down版本,并且可以使用rake db:migrate:down执行此操作。请务必传递要运行的迁移的时间戳。

rake db:migrate:down VERSION=20140309162533