Миграции могут обрабатывать как структуру (схему), так и данные, но, как только вы переходите, предполагается, что в большинстве случаев ваши производственные данные являются каноническим источником информации. Если есть данные, необходимые для настройки базы данных, например, такие как списки («Mastercard, Visa, Amex») или данные начальной загрузки (например, настройка пользователя с правами администратора), это может быть указано в файле «seed .rb». который создает копию базы данных (схемы и содержимого) и автоматически применяет ее - как правило, это одноразовая вещь.
(В другом направлении - копирование рабочей базы данных в QA или экземпляры разработки является распространенным случаем. Сначала вы можете подумать: Rails должен это делать. Но копирование типичного Производственная база данных может быть сопряжена с проблемами. Наиболее важным является то, что копирование производственной базы данных, содержащей информацию о пользователе, представляет значительную угрозу безопасности; любая операция копирования должна как минимум сделать пользователей анонимными. Вторая проблема - это просто размер базы данных: производственная база данных часто полезны или даже необходимы для воспроизведения реальных проблем с производительностью или других крайних случаев, но любая большая база данных может занять много времени для репликации и сильно зависит как от конкретной базы данных, которую вы используете, так и от разрешений)
Короче говоря, Rails правильно делает с миграцией: предполагает, что структурные обновления в порядке, но требует, чтобы вы заполняли данные. Надеюсь, это поможет!