и процедур в виде sql файлов в гите. Пытаюсь создать скрипт на баше для развертывания БД из актуальной ветки гита. При работе скрипта возникает проблема с таблицами которые имеют внешние ключи из других таблиц. Т.е. на некотором этапе импорт таблицы не происходит, так как некоторая таблица из которой необходим ключ еще не существует. Есть вариант обернуть весь импорт файлов в транзакцию? сам импорт таблиц и т.д происходит через
psql -h host -U user test_db < any_name.sql
Можно, например, через \i в psql (кстати, не postgres, очевидно). Или вообще посмотреть как это pg_dump формата directory делает. Плюс, referential integrity можно отложыть до конца транзакцыи.
Сначала создать и заполнить таблицы, а потом обвесить ограничениями целостности.
я не могу править данные гита .. а там всё таблицы через create table c проставленными ключами ...
Я думал, Ваша репа
если бы моя, я бы не спрашивал ) а так, что есть то и пытаюсь задействовать
Из гита забрать код, исключить из него Alter table ... add constraint ... foreign key ..., выполнить, выполнить то что исключили. Если Alter table ... add constraint ... foreign key ... в одну строку не очень сложно будет.
Может конечно у вас и не так, но сильно подозреваю, что пред тем как попасть в гит в виде sql файлов, эта БД где-то существует. М\б на компе разработчика\архитектора и скорей всего он делает дамп схемы БД, который обрабатывает каким-то инструментом (их есть несколько известных) для того чтобы получить набор файлов пригодных для взятия под контроль версий с помощью гит — когда объект БД это файл, группируя объекты БД по типам, таблицы, ф-ции м\б по схемам и т.п. в директории. Разные инструменты делают это по-разному (причем многие не знают про редко используемые объекты БД). Дык вот, я все это к тому, что лучше не пытаться провернуть фарш обратно, а вместе в разобранным дампом схемы БД хранить под контролем версий рядом и сам дамп, и восстанавливать с его помощью.
да конечно оно так и есть .. у dba есть дампы и т.п.. а гит в данном случае для разрабов, так сказать побочные проект .. я бы сам не против использовать нормальные инструменты, в которых всё уже продумано
Обсуждают сегодня