schema.rb обновлен с ожидающими миграциями

Мой файл schema.rb обновлен со всеми изменениями, которые я упомянул в моих файлах миграции. Однако, когда я пытаюсь настроить свой БД,

Я получаю сообщение об ошибке «У вас 30 незавершенных миграций».

Насколько мне известно, schema.rb не обновляется, если миграция не выполняется.

Чтобы справиться с этим, я попытался выполнить rake db: schema: load, а затем попытался заполнить базу данных. Даже тогда я получал сообщение об ошибке: «У вас 30 незавершенных миграций».

Кто-нибудь может мне помочь?


person Sri Murthy Upadhyayula    schedule 20.02.2013    source источник


Ответы (2)


Миграции - это способ управлять изменениями вашей текущей схемы.

Если ваша схема уже соответствует тому, что вы хотите, вы можете отбросить миграции и просто перейти к заполнению своей базы данных. Конечно, rake db:seed сначала попытается запустить какие-либо миграции, поэтому сначала удалите их из папки.

Rails создает таблицу с именем migrations и фактически записывает идентификаторы миграций, которые были выполнены в этой базе данных. Если вы развертываете свое приложение в новом экземпляре базы данных и запускаете rake db:schema:load на нем, тогда его migrations таблица будет пустой, и у вас будут проблемы, когда что-то вызывает migrate, если вы не избавитесь от файлов миграции, которые у вас нет. необходимость.

person Community    schedule 20.02.2013
comment
Я согласен с вашим подходом. Мое приложение находится под контролем версий, и если я удалю файлы миграции, мне нужно будет вытащить их позже. Это действительно помогает мне без проблем запускать скрипт семян. Но затем я понял основную причину моей проблемы: я использую гем redis в текущем и другом репозитории, который я клонировал. Изменение имен пространств имен в нескольких других файлах конфигурации помогло мне пройти весь процесс настройки базы данных без каких-либо расхождений. Спасибо за ответ, по крайней мере, я должен узнать кое-что, чего я не знал. :) - person Sri Murthy Upadhyayula; 20.02.2013

Ты пытался

rake db:migrate

?

person ksugiarto    schedule 20.02.2013
comment
Да, я сделал. Это вызывает у меня сообщение об ошибке, в котором говорится, что столбец xyz уже существует ... Это именно то, что делает первая из 30 ожидающих миграций. - person Sri Murthy Upadhyayula; 20.02.2013
comment
Это не дает ответа на вопрос. Чтобы критиковать или запрашивать разъяснения у автора, оставьте комментарий под его сообщением - вы всегда можете комментировать свои собственные сообщения, и как только у вас будет достаточная репутация вы сможете комментировать любое сообщение. - person David Cain; 20.02.2013
comment
@MurthyUpadhyayula У вас есть двойные вещи в вашей базе данных? У меня тоже была эта проблема, я пытаюсь сделать так, чтобы моя миграция не конфликтовала ни с чем в моей базе данных .. - person ksugiarto; 20.02.2013
comment
@ Дэвид, спасибо, сэр, я просто пытаюсь помочь, так как моя репутация заставляет меня еще не комментировать какие-либо сообщения, и поскольку мои знания еще не продвинулись до описания ответа, я просто пытаюсь помочь тем, что знаю, спасибо - person ksugiarto; 20.02.2013
comment
Если вы имеете в виду два репозитория, говоря «Двойные вещи», то да. У меня были общие имена пространств имен в нескольких файлах конфигурации, используемых общими драгоценными камнями в обоих репозиториях. Я просто изменил имена пространств имен, и все стало работать. Пока я говорю об этом, я бы также сказал, что bdares прав. Мы можем просто удалить файлы миграции, которые вызывают проблемы, и запустить установку. Вы можете вытащить их позже (если ваше репо использует какой-то SVC) :) - person Sri Murthy Upadhyayula; 20.02.2013