Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
28.11.2019, 16:05
|
|||
---|---|---|---|
|
|||
Postgres. Ведение и развёртывание DB проекта |
|||
#18+
Всем доброго дня. Есть задача: 1) заскриптовать базу(процедуры, таблицы, функции и тд) 2) положить все скрипты в Git(каждая сущность в отдельном файле) 3) при изменении любой сущности в проекте иметь возможность сформировать DIFF-скрипт, который, собсно, синхронизирует DBProject с базой. Может ли кто-нибудь поделиться, как такое можно сделать? Может есть какие-то тулзы, которые сравнивают Git-репозиторий с базой и формируют Diff-скрипт ? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.11.2019, 16:07
|
|||
---|---|---|---|
|
|||
Postgres. Ведение и развёртывание DB проекта |
|||
#18+
Kanadec 3) при изменении любой сущности в проекте иметь возможность сформировать DIFF-скрипт, который, собсно, синхронизирует DBProject с базой. В ОБЩЕМ случае, это сделать не возможно Например добавление поля с контстрейном NOT NULL. Что делать, если в таблице уже есть данные? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.11.2019, 17:37
|
|||
---|---|---|---|
|
|||
Postgres. Ведение и развёртывание DB проекта |
|||
#18+
Предположим что база абсолютно пустая и добавление NOT NULL поля не будет падать. Очень хочется получить DIFF-скрипт. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.11.2019, 22:11
|
|||
---|---|---|---|
Postgres. Ведение и развёртывание DB проекта |
|||
#18+
Kanadec, Встречал 2 варианта, на C: https://github.com/eulerto/pgquarrel и на Python: https://github.com/djrobstep/migra ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.11.2019, 23:01
|
|||
---|---|---|---|
Postgres. Ведение и развёртывание DB проекта |
|||
#18+
Kanadec, alembic может бьіть? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.11.2019, 10:03
|
|||
---|---|---|---|
|
|||
Postgres. Ведение и развёртывание DB проекта |
|||
#18+
Kanadec Предположим что база абсолютно пустая и добавление NOT NULL поля не будет падать. Очень хочется получить DIFF-скрипт. если база пустая то diff скрипт - просто пересозание базы с нуля (drop db/create db/пересоздать все что надо по списку) если не пустая - то с автоматическими diff задача не решается... просто потому что не ясно например если в таблице было поле А а стало поле Б это 1)переименование поля А в поле Б или 2)удалили поле А и добавили поле Б результаты то весьма разные будут... production ddl он сильно завязан на миграцию имеющихся данных а такие вещи только руками пишутся более того зачастую даже ручной ddl надо переделывать на постадийное внесение та же простейшая смена типа с int на bigint в таблице на терабайт (да и на 10gb уже весело на самом деле) - если делать в лоб устроит вам downtime на сутки и с хорошими шансами потерю всех реплик... а не в лоб - это достаточно хитрая миграция с триггерами и обновлением таблицы по частям. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.11.2019, 13:03
|
|||
---|---|---|---|
Postgres. Ведение и развёртывание DB проекта |
|||
#18+
Leonid Kudryavtsev Например добавление поля с контстрейном NOT NULL. Что делать, если в таблице уже есть данные? добавить в определение новой колонки DEFAULT значение Код: plsql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.11.2019, 20:09
|
|||
---|---|---|---|
|
|||
Postgres. Ведение и развёртывание DB проекта |
|||
#18+
Kanadec Предположим что база абсолютно пустая и добавление NOT NULL поля не будет падать. Очень хочется получить DIFF-скрипт. у нас нечто подобное - https://habr.com/ru/post/333762/ но сильно "допиленное" ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=53&mobile=1&tid=1994912]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
48ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 167ms |
0 / 0 |