У меня возникла проблема с переносом моих миграций в производственную базу данных.
Проблема:
- Я изменил схему базы данных, добавив 1 столбец.
-
Я перенес его в производственную базу данных:
MacBook-Air-Mac: приложение msc $rake db: migrate RAILS_ENV = "production" [RailsAdmin] Инициализация RailsAdmin отключена по умолчанию. Пропустите SKIP_RAILS_ADMIN_INITIALIZER = false, если вам это нужно. == AddLengthColumnToBooks: миграция ========================================================================================== - add_column (: books,: length,: integer) - > 0,0017s == AddLengthColumnToBooks: migrated (0.0019s) ========================================
-
Подумав о том, что новая схема БД теперь находится в производстве, я развернул код, который выполняет некоторые действия с
:length
. -
В процессе производства я получил следующую ошибку:
undefined метод `length = 'для #
-
Я сделал
heroku rollback
и понизил приложение до последней надежной версии. -
THEN (возможно, слишком поздно) Я узнал, что мне нужно
heroku restart
приложение загрузить новые индексы. Я делал это несколько раз. -
Затем я открыл консоль и проверил
Book.column_names
, но не былоlength
-
Я сделал
heroku run rake db:migrate
, а затемheroku restart
еще раз, никаких изменений. -
Я пробовал переносить другой столбец на производственный db, но не получил никакого сообщения вообще, даже не из p.2.
Что я здесь делаю неправильно?
Обновление
Основываясь на ответах Philipe, я сделал несколько дополнительных шагов:
-
git add db/schema.rb
,git add db/migrate/20130325103953_add_length_column_to_books.rb
и 'git добавить db/migrate/20130401041910_add_duration_column_to_books.rb'. Git ответ был: -
Изменения, которые необходимо совершить: (используйте "git reset HEAD..." для нестабильности)
новый файл: db/migrate/20130325103953_add_length_column_to_books.rb новый файл: db/migrate/20130401041910_add_duration_column_to_books.rb изменено: db/schema.rb
-
Тогда я сделал
git commit -m "Updating the schema"
. -
Снова выход:
3 files changed, 168 insertions(+), 156 deletions(-)
создать режим 100644 db/migrate/20130325103953_add_length_column_to_books.rb создать режим 100644 db/migrate/20130401041910_add_duration_column_to_books.rb
-
Затем я запустил
heroku run rake db:migrate
. К сожалению, никаких признаков миграции не было, просто получил:Запуск
rake db:migrate
, подключенный к терминалу... вверх, run.5428 и что он. -
В рабочей консоли Rails консоль
Book.column_names
все еще не имеет длины и продолжительности.
Теперь у меня еще больше идей. `