Как загрузить обновление Git для моего приложения на Rails на DotCloud.com, не теряя при этом базу данных SQLite prod - PullRequest
2 голосов
/ 29 мая 2011

Это может быть проблема новичка, но я пока не могу найти решение.Я разрабатываю приложение Rails локально, которое использует SQLite, я настроил локальное Git-репо, и команда dotcloud push использует это.Локально я использую среду разработки, и в DotCloud она автоматически использует prod env, и это здорово.Проблема в том, что каждый раз, когда я делаю push, моя prod db на DotCloud теряется, независимо от того, насколько незначительны изменения в кодовой базе, и мне приходится запускать 'rake db: migrate', чтобы настроить его снова.У меня локально нет prod db, есть только dev и test dbs.

Ответы [ 4 ]

3 голосов
/ 04 октября 2012

Поместите вашу БД в ~ / data /, как описано здесь и создайте символическую ссылку во время развертывания:

ln -s ~/data/production.sqlite3 ~/current/db/production.sqlite3
2 голосов
/ 29 мая 2011

Вы должны , а не иметь файл базы данных SQLite в системе управления версиями.Если бы у вас было несколько разработчиков, каждый раз, когда кто-то сливал последние изменения, конфликтовал бы.И, как вы заметили, он также будет запущен в производство.

Вы должны добавить файл БД в .gitignore.Если он уже находится в режиме управления версиями, вам, вероятно, придется сначала git rm файл.

0 голосов
/ 29 мая 2011

Не совсем уверен, как настроен git на DotCloud.com, но я предполагаю, что есть пустое репо, на которое вы нажимаете, и другое репо, которое извлекается из голого, когда был выполнен подходящий крючок git. Вам необходимо выяснить, можете ли вы настроить последний рывок для использования нашей стратегии слияния.

0 голосов
/ 29 мая 2011

Проблема в том, что при каждом развертывании старая версия развернутого приложения стирается и заменяется новым кодом, а база данных sqlite обычно находится в файлах приложения. Я не пользователь dotcloud, я не знаю, как это работает, но вы можете попытаться настроить общую папку, в которой вы размещаете производственную базу данных на сервере, который находится за пределами вашего приложения rails.

...