Моя база данных разработки и схема производственной базы данных каким-то образом изменились, и я не могу их синхронизировать. Как справиться с этой ситуацией? - PullRequest
0 голосов
/ 01 апреля 2012

Я точно не знаю, как это произошло, но вот ситуация:

1. I was experimenting with the combination of "git reset --hard HEAD" and "git clean -f" 
2. For some reason when I did this, it only removed the migration file, but didn't really revert my sqlite database to the previous version.
3. I committed and pushed some more without realizing this
4. At the point I found this out, my development server had the following code:

    create_table "invitations", :force => true do |t|
        t.string "recipient_email"
        t.datetime "created_at"
        t.datetime "updated_at"
    end

   but my production server doesn't.
5. I tried to generate a new migration that drops invitations table. It works on the dev server since there is an existing invitations table. However when I push it and try to rake db:migrate on Heroku, it spits out error (obviously) because there is no such table over there to drop.

Как я могу обойти эту проблему, двигаясь дальше? Прямо сейчас, один из способов, который я могу придумать, - это запустить миграцию на сервере dev один раз, после чего я удаляю файл миграции, так что истории этой миграции drop_table не останется. Но я не уверен, что это правильный путь. Может ли кто-нибудь просветить меня?

1 Ответ

0 голосов
/ 01 апреля 2012

Да, самый простой (и, пожалуй, самый правильный) способ - удалить вашу таблицу invitations в разработке. Вам даже не нужно создавать (временный) файл миграции, просто удалите его из консоли или из инструмента администратора.

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