Ruby on rails 4 Rake db:迁移错误,表已存在

Ruby on rails 4 Rake db:迁移错误,表已存在,ruby-on-rails-4,sqlite,dbmigrate,Ruby On Rails 4,Sqlite,Dbmigrate,我无意中创建了一个我不需要的迁移,因此我删除了该文件,并在尝试运行rake db:migrate时创建了一个新的迁移。我一直遇到这个错误。我是使用SQLite3Gem和RubyonRails4的第一人 StandardError: An error has occurred, this and all later migrations canceled: SQLite3::SQLException: table "categories" already exists: CREATE TABLE

我无意中创建了一个我不需要的迁移,因此我删除了该文件,并在尝试运行rake db:migrate时创建了一个新的迁移。我一直遇到这个错误。我是使用SQLite3Gem和RubyonRails4的第一人

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)

您是否正在尝试完全移除该表?如果是这样,简单地删除迁移文件并不能消除它,因为它已经迁移到数据库中。如果您试图更改或删除该表,则需要开始新的迁移并使用“ALTERTABLE”。我建议您签出此stackoverflow链接:

当您创建并运行迁移时,若要创造机会,必须首先回滚:

$bin/rake db:回滚步骤=1

在此阶段,您可以删除或修改该文件,然后再次运行迁移_

$bin/rake数据库:迁移

既然删除了文件,就不能回滚。您需要做的是手动删除该表或创建迁移以删除该表:

$bin/rails生成迁移DropCategoristable

这将生成一个迁移文件。编辑它:

class DropCategoriesTable < ActiveRecord::Migration
  def up
    drop_table :categories
  end

  def down
    raise ActiveRecord::IrreversibleMigration
  end
end
class DropCategoriesTable
这是因为我正在尝试在不同的分支中制作一些样本。因此,我这样做并工作:

rake db:drop
rake db:reset or rake db:setup