Ошибка переноса базы данных Rails, Rails повторно запускает предыдущую миграцию? - PullRequest
0 голосов
/ 24 января 2011

Я следую учебному руководству по RailsTutorial.org, раздел 7.3, и пытаюсь выполнить миграцию БД с помощью rake, чтобы добавить столбец пароля в существующую базу данных.Похоже, происходит то, что rails повторно запускает предыдущий файл миграции и пытается добавить таблицу Users (которая уже существует), а не самый последний файл миграции и добавить столбец пароля.Любая помощь будет оценена!

Вот код, который я запустил для создания файла миграции:

$ rails generate migration add_password_to_users encrypted_password:string

Затем я запустил rake db: migrate и получил следующую ошибку:

An error has occurred, this and all later migrations canceled:

SQLite3::SQLException: table "users" already exists: CREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255), "email" varchar(255), "created_at" datetime, "updated_at" datetime)

Ответы [ 2 ]

1 голос
/ 24 января 2011

Rails запустит любую миграцию, номер которой не указан в таблице schema_migrations в соответствующей базе данных. Таким образом, если у него нет номера для миграции для создания таблицы пользователей, он запустит эту миграцию, которая взорвется, как вы видели, если таблица уже там есть.

Я не знаком с учебником, о котором вы говорите - можете ли вы рассказать мне, что вы уже сделали со своими миграциями?

0 голосов
/ 24 января 2011

Похоже, что была проблема с одним из других файлов миграции - я переместил этот файл из папки миграции и повторно запустил rake, и он заработал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...