【发布时间】:2014-02-24 14:31:15
【问题描述】:
我使用命令创建了一个新的脚手架:
rails generate scaffold level
但后来我用命令把它销毁了
rails destroy scaffold level
然后再次使用命令将其添加回来
rails generate scaffold level question:string answer:string prev_q:integer next_q:integer
但是现在当我尝试 rake db:migrate 然后我得到以下错误
SQLite3::SQLException: table "levels" already exists: CREATE TABLE "levels" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "question" varchar(255), "answer" varchar(255), "prev_q" integer, "next_q" integer, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)
我的 migrate/create_level.rb 是
class CreateLevels < ActiveRecord::Migration
def change
create_table :levels do |t|
t.string :question
t.string :answer
t.integer :prev_q
t.integer :next_q
t.timestamps
end
end
end
但我的 schema.rb 是:
create_table "levels", :force => true do |t|
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
我想知道如何更新架构中的级别表。另外我想知道为什么我销毁脚手架时表没有被删除。我需要运行另一个命令吗?
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3 schema scaffold