Я пытаюсь преобразовать базу данных Sqlite3 в Postgres, выгрузив ее в необработанный SQL, отредактировав SQL и затем загрузив его через psql
, суммируя этого сценария .
Общий подход выглядит хорошо, за исключением одной проблемы.Когда я пытаюсь выполнить окончательную загрузку с psql
, я получаю ошибки типа «таблица x не существует», потому что Sqlite выводит таблицы, на которые ссылаются внешние ключи, после таблиц, которые к ним относятся.Это приводит к тому, что psql прерывает все дальнейшие операторы с сообщением:
ERROR: current transaction is aborted, commands ignored until end of transaction block
Единственное немедленное решение, которое я вижу, состоит в том, чтобы вручную пройти через все SQL и попытаться вручную изменить порядок команд CREATE TABLE
, чтобы обеспечить правильный порядокподдерживается.Однако это очень утомительно.
Есть ли способ заставить Sqlite выводить SQL, чтобы таблицы выводились в порядке зависимости?