Я пытаюсь использовать программу для создания системы проверки подлинности для блога, который я программирую. Когда я пытаюсь просмотреть блог, он говорит (Migrations ждут, запустите «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/[email protected]_rails_4_0/gems/sqlite3-1.3.8/lib/sqlite3/database.rb:91:in `initialize'
. В прошлом я переносил таблицу авторов, но мне пришлось перезапустить ее с более ранней точки, поскольку она не работала. Как удалить миграцию 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
Я действительно хочу, чтобы получить эту таблицу из базы данных и нажмите на новую таблицу. Большое спасибо за вашу помощь! Это оригинальная проблема, которая заставила меня перезапустить на более раннем уровне и заставила меня потерять так много времени.
Вы можете 'rake db: migrate: reset', если вы не заботитесь о данных локально. Вам придется «грабить db: seed» после, или просто добавлять новые вещи, поскольку это удалит все. – jeremywoertink
Спасибо, jeremy за ваш ответ! Удастся ли это удалить структуру некоторых моделей, которые я улучшил посредством миграции? Должен ли я переделать все миграции? – codigomonstruo
команда 'rake db: migrate: reset' будет просто удалять всю базу данных, а затем повторно запускать все миграции с самого начала. Это просто быстрый способ повторной синхронизации всех ваших миграций, если они вышли, как у вас. Не нужно менять модели или что-то (обычно). – jeremywoertink