tva*_*nt2 2 rake ruby-on-rails drop-table ruby-on-rails-3
我正在寻找一种方法来删除Rails中的表并重新开始并遇到了这样的答案:Rails数据库迁移 - 如何删除表?
但是,当我运行时,drop_table :examples我收到以下错误:
-bash: drop_table: command not found
Run Code Online (Sandbox Code Playgroud)
这是我的create_examples迁移文件:
def self.down
drop_table :examples
end
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮助指导我解决这个问题并让我了解我做错了什么吗?我需要修复它,因为此特定迁移阻止执行rake db:migrate,生成以下错误:
== CreateExamples: migrating ====================================================
-- create_table(:examples)
rake aborted!
An error has occurred, this and all later migrations canceled:
SQLite3::SQLException: table "examples" already exists: CREATE TABLE "examples" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "content" varchar(255), "user_id" integer, "created_at" datetime, "updated_at" datetime)
Run Code Online (Sandbox Code Playgroud)
谢谢!(如果我需要提供更多代码,请告诉我.)
您应该在创建新版本之前删除旧表:
def self.up
drop_table :examples
create_table :examples do |t|
#...
end
end
Run Code Online (Sandbox Code Playgroud)
由于你无法真正扭转这一点drop_table,你可能想在回滚中引发一个异常:
def self.down
raise ActiveRecord::IrreversibleMigration
end
Run Code Online (Sandbox Code Playgroud)
或许你只想保持现状self.down.
| 归档时间: |
|
| 查看次数: |
1429 次 |
| 最近记录: |