use*_*956 2 sqlite dbmigrate ruby-on-rails-4
我无意间创建了一个不需要的迁移,所以我删除了文件,并在尝试运行rake db:migrate时创建了一个新的迁移,但我一直收到此错误。我正在使用SQlite3 gem和Ruby on Rails 4
StandardError: An error has occurred, this and all later migrations canceled:
SQLite3::SQLException: table "categories" already exists: CREATE TABLE "categories" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "category_name" varchar, "created_at" datetime NOT NULL, "updated_at" datetime NO
T NULL) D:/muse/db/migrate/20150830113519_create_categories.rb:3:in `change'
D:in `migrate'
ActiveRecord::StatementInvalid: SQLite3::SQLException: table "categories" already exists: CREATE TABLE "categories" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "category_name" varchar, "created_at" datetime NO
T NULL, "updated_at" datetime NOT NULL)
D:/muse/db/migrate/20150830113519_create_categories.rb:3:in `change'
D:in `migrate'
SQLite3::SQLException: table "categories" already exists
D:/muse/db/migrate/20150830113519_create_categories.rb:3:in `change'
D:in `migrate'
Tasks: TOP => db:migrate
(See full trace by running task with --trace)
Run Code Online (Sandbox Code Playgroud)
当你创建一个迁移并运行它,并想要创造机会时,你必须首先回滚:
$ bin/rake db:rollback STEP=1
在这个阶段你可以删除文件或修改它并再次运行迁移_
$ bin/rake db:migrate
现在你删除了文件,你不能回滚。您需要做的是手动删除表或创建迁移以删除该表:
$ bin/rails 生成迁移 DropCategoriesTable
这将生成一个迁移文件。编辑它:
class DropCategoriesTable < ActiveRecord::Migration
def up
drop_table :categories
end
def down
raise ActiveRecord::IrreversibleMigration
end
end
Run Code Online (Sandbox Code Playgroud)
这是我的要求,因为我正在尝试在不同分支中进行一些采样。所以我这样做并工作:
rake db:drop
rake db:reset or rake db:setup
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4268 次 |
| 最近记录: |