2013-02-20 3 views
1

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

Я получаю сообщение об ошибке «У вас есть 30 ожидающих миграции».

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

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

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

ответ

2

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

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

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

+0

Я согласен с вашим подходом. Мое приложение находится под управлением версиями, и если я удалю файлы миграции, мне нужно будет потом их вытащить. Это помогает мне запускать скрипт семян без каких-либо проблем. Но потом я понял основную причину своей проблемы: я использую redis gem в текущем и в другом репозитории, который я клонировал. Изменение имен пространства имен в нескольких других файлах конфигурации помогло мне пройти весь процесс настройки базы данных без каких-либо расхождений. Спасибо за ваш ответ, по крайней мере, мне нужно узнать что-то, чего я не знал. :) –

0

Вы пробовали

rake db:migrate 

?

+0

Да, я это сделал. Это бросает мне сообщение о том, что столбец «xyz» уже существует ... Это именно то, что делает первая из 30 ожидающих миграций. –

+0

Это не дает ответа на вопрос. Чтобы критиковать или запросить разъяснения у автора, оставьте комментарий ниже своего сообщения - вы всегда можете прокомментировать свои собственные сообщения, и как только у вас будет достаточно [репутации] (http://stackoverflow.com/faq#reputation), вы сможете [прокомментировать любое сообщение] (http://stackoverflow.com/privileges/comment). –

+0

@MurthyUpadhyayula У вас есть двойные вещи в вашей базе данных? У меня была эта проблема и до этого, я стараюсь, чтобы моя миграция не столкнулась ни с кем в моей базе данных. – ksugiarto

Смежные вопросы