Как правильно использовать PostgreSQL в Rails?

Есть рельсовый проект и PG база данных. Была создана тестовая ветка на базе development ветки, в которой были произведены миграции в базу данных. После удаления этой ветки без слива в development ветку, в базе данных остались все изменения из тестовой ветки, и при попытках в development ветке создать таблицы которые были в тестовой выдает ошибку о существовании уже такой таблицы.

Насколько я понимаю причина в том что PG база данных не находится в папке db/ проекта, и не отслеживается гитом.
Как все правильно организовать чтобы избежать подобных проблем ?
  • Вопрос задан
  • 3427 просмотров
Решения вопроса 1
kirillplatonov
@kirillplatonov
Ruby on Rails developer
Стандартный способ работы с PG в девелопменте с ветками, которые имеют разную структуру БД:
rake db:drop; rake db:create; rake db:migrate; rake db:seed

При этом не забудьте сложить минимальный необходимый для разработки набор записей базы в db/seeds.rb

И если хотите упростить жизнь то поставьте zsh и плагин для rake, rails и используйте алиасы:
rdd; rdc; rdm; rds
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
viktorvsk
@viktorvsk
причина в том что PG база данных не находится в папке db/ проекта, и не отслеживается гитом.

Разберитесь, как работает постгрес (монго, майскуэль) без ruby и RoR. Потом - чем они отличаются от sqlite
Затем привыкайте никогда не лазить вручную в db/migrate и schema.
Поймите, что такое миграции и как они хранятся в базе (и для чего вообще они нужны в вашем проекте в папке db/migrate, написанные на руби)
Ответ написан
Комментировать
Toy
@Toy
Front-end Developer @ Starbucks
Удалите вручную эти таблицы (миграции которых происходили в другой ветке). Либо если они вам нужны вместе с данными и у вас написаны под них миграции в development, то можно ручками пометить эти миграции как выполненные в таблице schema_migrations.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы