我试图通过将Sqlite3数据库转储到原始SQL,编辑SQL,然后通过psql
(由this script总结)来将其转换为Postgres。
总体方法似乎不错,除了一个问题。当我尝试使用psql
运行最终负载时,出现诸如“表x不存在”之类的错误,因为Sqlite会在引用外键的表之后输出引用外键的表。这将导致psql中止带有该消息的所有其他语句:
ERROR: current transaction is aborted, commands ignored until end of transaction block
我看到的唯一立即解决的方法是手动检查所有SQL并尝试手动对CREATE TABLE
命令重新排序,以便保持正确的顺序。但是,这非常繁琐。
有什么方法可以强制Sqlite输出SQL,以便按依赖性顺序输出表?