172 похожих чатов

Всем вечер добрый. У меня есть набор таблиц, вьюх, схем

и процедур в виде sql файлов в гите. Пытаюсь создать скрипт на баше для развертывания БД из актуальной ветки гита. При работе скрипта возникает проблема с таблицами которые имеют внешние ключи из других таблиц. Т.е. на некотором этапе импорт таблицы не происходит, так как некоторая таблица из которой необходим ключ еще не существует. Есть вариант обернуть весь импорт файлов в транзакцию? сам импорт таблиц и т.д происходит через
psql -h host -U user test_db < any_name.sql

8 ответов

21 просмотр

Можно, например, через \i в psql (кстати, не postgres, очевидно). Или вообще посмотреть как это pg_dump формата directory делает. Плюс, referential integrity можно отложыть до конца транзакцыи.

Сначала создать и заполнить таблицы, а потом обвесить ограничениями целостности.

Vitaly-Larin Автор вопроса
Guzya
Сначала создать и заполнить таблицы, а потом обвес...

я не могу править данные гита .. а там всё таблицы через create table c проставленными ключами ...

Vitaly-Larin Автор вопроса
Guzya
Я думал, Ваша репа

если бы моя, я бы не спрашивал ) а так, что есть то и пытаюсь задействовать

Vitaly Larin
я не могу править данные гита .. а там всё таблицы...

Из гита забрать код, исключить из него Alter table ... add constraint ... foreign key ..., выполнить, выполнить то что исключили. Если Alter table ... add constraint ... foreign key ... в одну строку не очень сложно будет.

Может конечно у вас и не так, но сильно подозреваю, что пред тем как попасть в гит в виде sql файлов, эта БД где-то существует. М\б на компе разработчика\архитектора и скорей всего он делает дамп схемы БД, который обрабатывает каким-то инструментом (их есть несколько известных) для того чтобы получить набор файлов пригодных для взятия под контроль версий с помощью гит — когда объект БД это файл, группируя объекты БД по типам, таблицы, ф-ции м\б по схемам и т.п. в директории. Разные инструменты делают это по-разному (причем многие не знают про редко используемые объекты БД). Дык вот, я все это к тому, что лучше не пытаться провернуть фарш обратно, а вместе в разобранным дампом схемы БД хранить под контролем версий рядом и сам дамп, и восстанавливать с его помощью.

Vitaly-Larin Автор вопроса
Sergey Zhuravlev
Может конечно у вас и не так, но сильно подозреваю...

да конечно оно так и есть .. у dba есть дампы и т.п.. а гит в данном случае для разрабов, так сказать побочные проект .. я бы сам не против использовать нормальные инструменты, в которых всё уже продумано

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта