我做了一个新的脚手架
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'
答案 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