我已经在这个项目上成功使用了一段时间的 knex.js,这是我第一次遇到这个。我删除了所有迁移文件并删除了我的数据库(本地),而是使用 pg_dump 从我的 prod 数据库(不包括 knex_migrations 或 knex_migrations_lock 表)中获取 DDL 和所有数据。
我创建了一个新的迁移脚本并用于knex.raw
粘贴所有 SQL。当我运行迁移脚本时,我得到以下信息:
error: insert into "knex_migrations" ("batch", "migration_time", "name") values ($1, $2, $3) - relation "knex_migrations" does not exist
此迁移脚本正在一个全新的数据库上运行。当我将脚本中的内容更改为基本 DDL 时,它可以正常工作。因此,关于 pg_dump 的结果并尝试使用 knex 运行它会导致它被炸毁。
这也不是大量数据,所以我不太确定哪里出错了 - knex 负责创建迁移表,我确保 DDL 中没有提及 knex 或迁移表.
任何建议将不胜感激 :)