powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Postgres. Ведение и развёртывание DB проекта
8 сообщений из 8, страница 1 из 1
Postgres. Ведение и развёртывание DB проекта
    #39895768
Kanadec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго дня.
Есть задача:
1) заскриптовать базу(процедуры, таблицы, функции и тд)
2) положить все скрипты в Git(каждая сущность в отдельном файле)
3) при изменении любой сущности в проекте иметь возможность сформировать DIFF-скрипт, который, собсно, синхронизирует DBProject с базой.
Может ли кто-нибудь поделиться, как такое можно сделать?
Может есть какие-то тулзы, которые сравнивают Git-репозиторий с базой и формируют Diff-скрипт ?
...
Рейтинг: 0 / 0
Postgres. Ведение и развёртывание DB проекта
    #39895771
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kanadec

3) при изменении любой сущности в проекте иметь возможность сформировать DIFF-скрипт, который, собсно, синхронизирует DBProject с базой.

В ОБЩЕМ случае, это сделать не возможно

Например добавление поля с контстрейном NOT NULL. Что делать, если в таблице уже есть данные?
...
Рейтинг: 0 / 0
Postgres. Ведение и развёртывание DB проекта
    #39895831
Kanadec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Предположим что база абсолютно пустая и добавление NOT NULL поля не будет падать.
Очень хочется получить DIFF-скрипт.
...
Рейтинг: 0 / 0
Postgres. Ведение и развёртывание DB проекта
    #39895961
Фотография vyegorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kanadec,

Встречал 2 варианта, на C: https://github.com/eulerto/pgquarrel и на Python: https://github.com/djrobstep/migra
...
Рейтинг: 0 / 0
Postgres. Ведение и развёртывание DB проекта
    #39895983
jan2ary
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kanadec,

alembic может бьіть?
...
Рейтинг: 0 / 0
Postgres. Ведение и развёртывание DB проекта
    #39896112
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kanadec
Предположим что база абсолютно пустая и добавление NOT NULL поля не будет падать.
Очень хочется получить DIFF-скрипт.


если база пустая то diff скрипт - просто пересозание базы с нуля (drop db/create db/пересоздать все что надо по списку)
если не пустая - то с автоматическими diff задача не решается...
просто потому что не ясно например
если в таблице было поле А а стало поле Б это
1)переименование поля А в поле Б
или
2)удалили поле А и добавили поле Б
результаты то весьма разные будут...


production ddl он сильно завязан на миграцию имеющихся данных а такие вещи только руками пишутся
более того зачастую даже ручной ddl надо переделывать на постадийное внесение
та же простейшая смена типа с int на bigint в таблице на терабайт (да и на 10gb уже весело на самом деле) - если делать в лоб устроит вам downtime на сутки и с хорошими шансами потерю всех реплик... а не в лоб - это достаточно хитрая миграция с триггерами и обновлением таблицы по частям.
...
Рейтинг: 0 / 0
Postgres. Ведение и развёртывание DB проекта
    #39896323
Фотография DSKalugin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev

Например добавление поля с контстрейном NOT NULL. Что делать, если в таблице уже есть данные?

добавить в определение новой колонки DEFAULT значение
Код: plsql
1.
ALTER TABLE test.timevalues add new_field int4 NOT NULL DEFAULT 0
...
Рейтинг: 0 / 0
Postgres. Ведение и развёртывание DB проекта
    #39896598
kira ivanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kanadec
Предположим что база абсолютно пустая и добавление NOT NULL поля не будет падать.
Очень хочется получить DIFF-скрипт.


у нас нечто подобное - https://habr.com/ru/post/333762/
но сильно "допиленное"
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Postgres. Ведение и развёртывание DB проекта
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]