如何在 knex 迁移中放置外键?

How to put a foreign key in knex migration?

我正在尝试将外键放入 knex 迁移中。 “age_group_id”(“年龄组”table 的主键)是“用户”table 的外键。所以,我把它放在下面的图片中。 (第 22 行)

20220424203501_create_users.ts

当我 运行 代码 (npm 运行 deploy:fresh) 时,它显示如下错误。

error

但是,如果没有第 22 行,它不会显示错误。这是我的文件夹结构。

folder structure

谁能帮我解决这个问题,我写外键的方式有什么问题吗?

您应该检查您的数据库是否有不适合的数据,例如外部不存在的 id 值 table,删除任何这样的行并且迁移应该工作,如果你让我们知道 npm run deploy:fresh 做了什么,如果数据没有在干净的迁移中清除,你可能做错了其他事情

使用外键时,您需要在两个 table 中使用相同的数据类型。例如,如果您在年龄组 table 中使用 'uuid' 作为 id,那么您必须为用户 table 使用 uuid 外键(age_group_id)也。但是在这里您使用了 'text' 数据类型作为外键。请检查两种数据类型是否相似。