Мой небольшой проект, который достиг своего релиза, основан на squeryl - типизированной среде реляционных баз данных для Scala (язык на основе JVM).
Я предвижу несколько обновлений после первоначального развертывания.Данные, введенные в базу данных, должны быть сохранены над ними.Это невозможно без какой-либо процедуры переноса данных, обновления данных для более новой схемы БД.Использование старых данных для тестирования нового кода также требует исправлений совместимости.
Теперь я использую автоматическую генерацию схемы на платформе.Кажется, что он может создавать схему только с нуля - данные не сохраняются.
Существуют ли методы, которые позволяют легко и формализованно переносить данные в измененную схему без полного отказа от автоматического создания схемы?
Пока чтоЯ вижу только простой способ добавления столбцов: мы выгружаем старые данные, предоставляем значения по умолчанию для новых столбцов, сбрасываем схему и восстанавливаем старые данные.
Как удалить, переименовать, изменить типы столбцов или семантику?
Если создание схемы бесполезно для переноса производственной базы данных, каковы стандартные процедуры для обычного повторного развертывания вручную или по сценарию?