如何删除数据库中的迁移?

时间:2014-10-31 15:39:19

标签: ruby-on-rails database rails-migrations sqlite3-ruby

我一直在尝试使用设计为我正在编程的博客创建一个身份验证系统。当我尝试查看博客时,它说(迁移正在等待;运行'bin / rake db:migrate RAILS_ENV = development'解决此问题。),当我运行该命令时,它失败并呈现此消息:

Moussas-MacBook-Pro:theBlog moussasarr$ bin/rake db:migrate RAILS_ENV=development
== 20141031151735 SorceryCore: migrating ======================================
-- create_table(:authors)
rake aborted!
StandardError: An error has occurred, this and all later migrations canceled:

SQLite3::SQLException: table "authors" already exists: CREATE TABLE "authors" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "username" varchar(255) NOT NULL, "email" varchar(255) NOT NULL, "crypted_password" varchar(255) NOT NULL, "salt" varchar(255) NOT NULL, "created_at" datetime, "updated_at" datetime) /Users/moussasarr/.rvm/gems/ruby-2.0.0-p576@railstutorial_rails_4_0/gems/sqlite3-1.3.8/lib/sqlite3/database.rb:91:in `initialize'

。我之前确实迁移了authors表,但是由于它没有用完,我不得不重新开始。如何删除SorceryCore迁移以创建新的迁移?

以下是迁移表:

class SorceryCore < ActiveRecord::Migration
    def change
     create_table :authors do |t|
      t.string :username,         :null => false
      t.string :email,            :null => false
      t.string :crypted_password, :null => false
      t.string :salt,             :null => false
      t.timestamps
      end
      add_index :authors, :email, unique: true
      end
      end

我真的想从数据库中取出这个表并推入一个新表。 非常感谢你的帮助 !这是原来的问题,让我在较早的水平重新开始,让我失去了这么多时间。

1 个答案:

答案 0 :(得分:0)

您可以db:migrate:down VERSION=your_migration_version从数据库中删除表,然后删除迁移文件,然后运行devise进行身份验证所需的迁移。

但是,请确保您在任何迁移过程中都不需要authors表,直到设计它不会存在并且可能是一个很大的您的代码库和所有内容的问题。