Size: a a a

pgsql – PostgreSQL

2020 June 29

VA

Vladimir Avramov in pgsql – PostgreSQL
Viktor Egorov@CSI
Разработчик вносит изменения в тестовую базу. Потом прогоняет скрипт, выгружает структуру базы и прислюнявливает к коммиту с кодом фичи. Конечно, есть ограничение, чтобы два разработчика не вносили изменения одновременно в одни и те же сущности, но в рассматриваемой задаче такого точно нет.

Вообщем это не замена скриптам миграции и на версионифицированею самой структуры.
Посмотрите в сторону подхода с https://flywaydb.org
источник

MM

Maksim Milyutin in pgsql – PostgreSQL
Viktor Egorov@CSI
Коллеги, а есть какие-то простые и проверенные решения для того чтобы в GIT сохранять историю изменений в базе?
Хочется, чтобы вместе с коммитом кода фичи можно было коммитить изменения и БД (структуры таблиц, view, функции).
При этом интересует даже не DDL с diff, т.е. не версифицирование структуры. Можно прямо скрипты создания для каждого объекта.

Самый простой вариант - это как-то экспортировать структуру БД в файл, и засунуть с коммитом в GIT. Это можно сделать с pg_dump. Но одним файлом это не удобно, изменения не удобно потом  смотреть. Удобнее было бы каждую сущность в отдельный файл.
Может есть какие-то готовые скрипты?
Pg_codekeeper позволяет вести директорию проекта вместе с накатом миграций
источник

VE

Viktor Egorov@CSI in pgsql – PostgreSQL
Да, спасибо. flyway знаю, но это немного другая история. Там про версионифицирование с точки зрения деплоя. Моя задача иная.
источник

ВГ

Владимир Гришин... in pgsql – PostgreSQL
Viktor Egorov@CSI
Представьте себе, в GIT лежит всегда актуальный набор скриптов для разворачивания базы. А история коммитов позволяет по каждой сущности видеть изменения и связь с фичами.
ну так миграции же
источник

ВГ

Владимир Гришин... in pgsql – PostgreSQL
какую вы проблему пытаетесь решить, которую не решают скрипты миграции?
источник

VE

Viktor Egorov@CSI in pgsql – PostgreSQL
я решаю вопрос не с деплоем. Решаю тот же вопрос, по которому код помещают в GIT - отслеживание изменений в коде
источник

VE

Viktor Egorov@CSI in pgsql – PostgreSQL
Переслано от Viktor Egorov@CSI
я беру фичу, и в GIT вижу все изменения - в таблицах, вьюхах, хранимых  процедурах. При этом без ручного написания скриптов миграций. Про которые тупо могут забывать.
источник

VE

Viktor Egorov@CSI in pgsql – PostgreSQL
Переслано от Viktor Egorov@CSI
Или беру таблицу, и понимаю по истории в git в рамках какой фичи поменялось поле
источник

VE

Viktor Egorov@CSI in pgsql – PostgreSQL
Maksim Milyutin
Pg_codekeeper позволяет вести директорию проекта вместе с накатом миграций
Спасибо, буду изучать
источник

E

Eugen in pgsql – PostgreSQL
Yaroslav Schekin
Нет, нельзя.
А что если бы PostgreSQL поддерживал специальную оптимизацию для функций, которые возвращают QUERY?  (см. UPD часть тут: https://stackoverflow.com/a/62614600/4632019 Сорри, что возможно там сумборное объяснение, но это пока только идея)

Как вам такая идея?
источник

FL

First Last in pgsql – PostgreSQL
Есть у меня запрос:
SELECT users.*, m.* FROM users
   LEFT JOIN LATERAL (
       SELECT messages.* FROM messages WHERE users.id = messages.user_id
       ORDER BY messages.id DESC FETCH FIRST 1 ROW ONLY
       ) as m on true
ORDER BY m.created_on;
как сделать так, чтобы если m.created_on null, то сортировалось по users.created_o?
источник

🎄S

🎄lex Solonenko in pgsql – PostgreSQL
First Last
Есть у меня запрос:
SELECT users.*, m.* FROM users
   LEFT JOIN LATERAL (
       SELECT messages.* FROM messages WHERE users.id = messages.user_id
       ORDER BY messages.id DESC FETCH FIRST 1 ROW ONLY
       ) as m on true
ORDER BY m.created_on;
как сделать так, чтобы если m.created_on null, то сортировалось по users.created_o?
order by coalesce?
источник

М

Максим in pgsql – PostgreSQL
Зачем with в sql
источник

М

Максим in pgsql – PostgreSQL
Он создаёт таблицу временную и кидает Тула все данные?
источник

М

Максим in pgsql – PostgreSQL
А происходит ли сброс этих данных на диск?
источник

FL

First Last in pgsql – PostgreSQL
🎄lex Solonenko
order by coalesce?
Огромное спасибо!
источник

I

Igor in pgsql – PostgreSQL
Всем привет! есть вопрос по восстановлению базы. Получаю ошибку ERROR: type "public.citext" does not exist. прикол в том, что перед pg_restore было выполнено CREATE EXTENSION IF NOT EXISTS citext;, но все равно не помогло
источник

I

Igor in pgsql – PostgreSQL
почему постгрес мог не увидеть расширение?
источник

SG

Sergey Garas in pgsql – PostgreSQL
Возможно серчпас переопределен был ранее и citext в другой схеме
источник

I

Igor in pgsql – PostgreSQL
да я проверил - он в public создается
источник