Size: a a a

pgsql – PostgreSQL

2020 December 30

gg

gri gvandri in pgsql – PostgreSQL
V N
Разовая акция или регулярная?
Если разовая, то проще построить направленный иерархию из таблиц по метаданным (связям) если возможно и больше не болеть...
систему я как более менее постояную планирую использовать, в нескольких проектах юзал вроде удобно
источник

D

Dmitriy in pgsql – PostgreSQL
gri gvandri
Ну то есть выглядеть это будет так, на одну таблицу одна миграция, переименовывание для хронологической сортировки и чтоб сразу видеть что эти таблицы определенного типа,  разные схемы, я как папки юзаю
А зачем вы в миграциях юзаете IF NOT EXISTS? Это ж по смыслу валиться в ошибку должно, если таблица уже существует (внезапно!) на момент применения миграции
источник

D

Dmitriy in pgsql – PostgreSQL
Ситуация ошибочная. А в случае с IF NOT EXISTS миграция заедет, не моргнув
источник

gg

gri gvandri in pgsql – PostgreSQL
Dmitriy
А зачем вы в миграциях юзаете IF NOT EXISTS? Это ж по смыслу валиться в ошибку должно, если таблица уже существует (внезапно!) на момент применения миграции
ну да, тут лучше убрать
источник

am

a m in pgsql – PostgreSQL
По-моему это все какой-то overthinking.
Не, ну не то, чтобы я сильно осуждал. У DBA работа такая, что часто заняться нечем.
источник

D

Dmitriy in pgsql – PostgreSQL
+1
источник

D

Dmitriy in pgsql – PostgreSQL
gri gvandri
ну да, тут лучше убрать
Я всё равно не понимаю, зачем вам делить миграции на группы? Ведь если нумерация миграций идёт строго по порядку (см. Phinx какой-нибудь), то проблем вообще никаких нет
источник

gg

gri gvandri in pgsql – PostgreSQL
Dmitriy
Я всё равно не понимаю, зачем вам делить миграции на группы? Ведь если нумерация миграций идёт строго по порядку (см. Phinx какой-нибудь), то проблем вообще никаких нет
так для хронологии, чтоб одна миграция раньше другой выполнялась
источник

D

Dmitriy in pgsql – PostgreSQL
gri gvandri
так для хронологии, чтоб одна миграция раньше другой выполнялась
Так вы когда создаёте миграцию в Phinx, он ей даёт название 20201229135039_MigrationName.php - и она строго выполнится после самой последней, потому что эти цифры в начале названия файла - дата и время.
источник

D

Dmitriy in pgsql – PostgreSQL
Когда Phinx применяет миграции, он смотрит на порядок этих названий файлов/классов, а потом проверяет их в таблице migrations(успешно применённые миграции) и затем применяет нужные в строгом порядке
источник

gg

gri gvandri in pgsql – PostgreSQL
Dmitriy
Так вы когда создаёте миграцию в Phinx, он ей даёт название 20201229135039_MigrationName.php - и она строго выполнится после самой последней, потому что эти цифры в начале названия файла - дата и время.
это я в laravel создаю, на стадии разработки проекта, т.е. не готовая бд, потом они будут созлаваться как содаются одна за лругой
источник

D

Dmitriy in pgsql – PostgreSQL
gri gvandri
это я в laravel создаю, на стадии разработки проекта, т.е. не готовая бд, потом они будут созлаваться как содаются одна за лругой
Даже на стадии разработки миграции создаются строго последовательно. Если же у вас уже есть готовая база, для который делаете проект, то снимите структурный дамп и засуньте его целиком в одну самую первую миграцию.
источник

VN

V N in pgsql – PostgreSQL
gri gvandri
это я в laravel создаю, на стадии разработки проекта, т.е. не готовая бд, потом они будут созлаваться как содаются одна за лругой
А не хотите просто иерархию зависимости таблиц одна от другой и все? (даже параллелить можно будет при большом желании)
источник

gg

gri gvandri in pgsql – PostgreSQL
V N
А не хотите просто иерархию зависимости таблиц одна от другой и все? (даже параллелить можно будет при большом желании)
всмысле вы про какую-то систему или про то что заранее продумыватать надо все таблицы?
источник

gg

gri gvandri in pgsql – PostgreSQL
Dmitriy
Даже на стадии разработки миграции создаются строго последовательно. Если же у вас уже есть готовая база, для который делаете проект, то снимите структурный дамп и засуньте его целиком в одну самую первую миграцию.
ну помойму это нереально создать последовательно, к примеру ты забыл справочник статический сделать, а он используется в последней миграции, переименовывать все равно придется
источник

D

Dmitriy in pgsql – PostgreSQL
gri gvandri
ну помойму это нереально создать последовательно, к примеру ты забыл справочник статический сделать, а он используется в последней миграции, переименовывать все равно придется
Как он может использоваться в последней миграции, если его ещё нет? Надо смотреть, какой SQL-запрос в миграцию пихаешь - это косяк разработчика, не более того.
источник

D

Dmitriy in pgsql – PostgreSQL
Нужно создавать миграцию для создания справочника, а только потом миграцию, где он использоваться будет. Это 2 миграции с возрастающим номером - выполнятся одна за другой.
источник

gg

gri gvandri in pgsql – PostgreSQL
Dmitriy
Нужно создавать миграцию для создания справочника, а только потом миграцию, где он использоваться будет. Это 2 миграции с возрастающим номером - выполнятся одна за другой.
ну допустим, мы проектируем БД, 100 таблиц написали уже, вдруг справочник цветов, понадобился для какой-то таблице связи, ну понятно что косяк разработчика, что стирать все?
источник

D

Dmitriy in pgsql – PostgreSQL
gri gvandri
ну допустим, мы проектируем БД, 100 таблиц написали уже, вдруг справочник цветов, понадобился для какой-то таблице связи, ну понятно что косяк разработчика, что стирать все?
Окей, мне понравился справочник цветов. Я зашел в БД (или Entity-класс посмотрел) и увидел, что его нет. Я создал миграцию CREATE TABLE flowers..., после чего создал ещё одну миграцию ALTER TABLE ... ADD COLUMN flower_id ... - и применил их обе
источник

gg

gri gvandri in pgsql – PostgreSQL
Dmitriy
Окей, мне понравился справочник цветов. Я зашел в БД (или Entity-класс посмотрел) и увидел, что его нет. Я создал миграцию CREATE TABLE flowers..., после чего создал ещё одну миграцию ALTER TABLE ... ADD COLUMN flower_id ... - и применил их обе
ок, а зачем нам на стадии разработки дробые миграции?
источник