Рассмотрим следующую настройку:
- Производственная БД
- БД разработчика, в которой вносятся изменения схемы для включения новых функций
Когда разработка новой функции будет завершена, мне придется вручную обновлять схему prod db, пока pg_dump --schema-only
обе базы данных не будут идентичны. Этот процесс подвержен ошибкам и утомителен.
Итак, я ищу инструмент, который может:
- Показать сводку различий между двумя схемами (как
diff
). Обратите внимание, что я не ищу простой текстовой различий схемы, но более сложный инструмент, который может сделать выводы, такие как «ТаблицаX
имеет новый столбецY
». - Автоматически генерировать код SQL, который конвертирует одну схему в другую (например
patch
)
Существует ли инструмент diff / patch для схем, который может помочь мне преобразовать схемы prod в более сложные схемы dev?
postgresql
schema
Адам Матан
источник
источник
Ответы:
Извините, что воскресил старый вопрос
В последнее время я использую
0xDBEDataGrip инструмент управления базами данных по JetBrains.Он поддерживает несколько механизмов баз данных в отличной среде разработки Jetbrains, и ключевой функцией, которую я нашел полезной, является возможность работы с
diff
2 таблицами (DEV и PROD).Ниже приведен скриншот различия в действии (в этом случае разница только в одном столбце). Снимок экрана является результатом кнопки «Слить справа» вверху, генерирующей SQL, необходимый для создания правильной таблицы с нуля.
Надеюсь, этот новый инструмент поможет.
источник
Database
меню выберите 2 таблицы, которые вы хотите сравнить (сcmd/ctrl + click
), щелкните правой кнопкой мыши и выберитеCompare
Используйте ликвидазу .
Он поддерживает diff , генерирует БД с нуля, исправляет БД, откатывает БД и кучу других вещей.
Раньше вам приходилось писать все на XML с использованием liquibase, но больше нет. Вы можете написать 99% на выбранном вами диалекте SQL. Пример:
Вы должны держать свои жидкие журналы в git или что у вас есть.
источник