@Ciscoridze

Нужны ли файлы добавления/удаления столбцов после миграции (Rails)?

Нужны ли сгенерированные с помощью rails g migration AddXXXToXXX или RemoveXXXtoXXX файлы миграции в Rails после миграции базы? И если нужны, то зачем, колонки ведь уже добавлены/удалены?
  • Вопрос задан
  • 2365 просмотров
Решения вопроса 1
Prognosticator
@Prognosticator
TODO: Здесь будут ворованные умные мысли, типа мои
Нужны для того, чтобы поднять проект другому разработчику или вам же на другой машине, например для staging сервера с тестовыми данными.
Структура БД храниться вместе с кодом.
Миграции не зависят от типа БД, на продакшене к примеру PosgreSQL - локально SQLite.
Таскать по машинам объемную базу в виде бэкапов может быть очень накладно (тем более если это совершенно разные бд, как в моем примере выше).

Кроме того задача миграций - иметь быстрый способ откатить изменения в БД на несколько шагов назад/вперед, до определенной стадии разработки.
В том числе до определенной версии - rake db:rollback VERSION=X
Это основная часть доводов, почитайте оф. документацию по миграциям и best practices.
Есть и обходной путь со схемой БД, вы можете поднять базу из одной единственной миграции, предварительно ее создав.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Ciscoridze Автор вопроса
Можно вам ещё вопрос, чтобы не создавать отдельную тему: при деплое на хероку залил все файлы миграции, попытался сделать heroku run rake db:migrate. Происходит ошибка - колонка ХХХ уже присутствует в таблице УУУ. Мне пришлось удалить часть файлов миграции на которые ругался хероку. Но некоторые пришлось оставить - без них приложение на работало, т.к. НЕ БЫЛО соответствующих колонок в таблице, но в development среде все было нормально. Так вот вопрос - почему некоторые колонки были, а некоторых не было? И можно ли было как-то обойтись без удаления файлов миграции?
Ответ написан
Ваш ответ на вопрос

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

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