PostgreSQL: инструмент сравнения /исправления схемы [закрыт]

Рассмотрим следующую настройку:

  • Производственная БД
  • Dev db, на котором изменения схемы сделаны для включения новых функций

Когда разработка новой функции завершена, я должен вручную обновить схему prod db до тех пор, пока код pg_dump --schema-only на обеих БД не будет идентичен , Этот процесс является склонным к ошибкам и утомительным.

Итак, я ищу инструмент, который может:

  • Покажите резюме различий между двумя схемами (например, diff). Обратите внимание, что я не ищу простой текстовый diff схемы, но более сложный инструмент, который может делать выводы, такие как «Таблица X новый столбец Y ".
  • Автоматическое создание кода SQL, который преобразует одну схему в другую (например, patch ) литий>

Есть ли схема diff / patch , который может помочь мне преобразовать схемы prod в более продвинутые схемы dev?

12 голосов | спросил Adam Matan 13 AM00000090000004131 2014, 09:40:41

1 ответ


6

Используйте Liquibase .

Он поддерживает diff , генерируя db с нуля, исправляя db, откатываясь назад дБ и множество других вещей.

Вам приходилось писать все в XML с помощью Liquibase, но не больше. Вы можете написать 99% этого на диалекте SQL по вашему выбору. Пример:

--liquibase formatted sql

--changeset neil:1 

create table contacts(
  contact_id serial primary key,
  name text not null unique
);

--changeset neil:2
alter table contacts add column phone_num text;

Вы должны сохранить свои списки изменений в git или what-have-you.

ответил Neil McGuigan 13 PM00000090000002731 2014, 21:44:27

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132