添加外键约束 Swift Vapor Fluent with PostgreSQL

Add Foreign Key Constraint Swift Vapor Fluent with PostgreSQL

当我启动此命令行 vapor 运行 prepare 时,我得到了正确的表,但外键约束是未添加。

我有一个主题 class 和一个问题 class :

主题: 名称, 编号

问题: 标题, ID, theme_id

这是我的问题 class 中的准备数据库函数:

static func prepare(_ database: Database) throws {

        try database.create("questions") { questions in
            questions.id()
            questions.string("title")
            questions.parent(Theme.self, optional: false)
        }


    }

在 Fluent 2 中添加了外键约束:

try database.create(self) { builder in
    builder.foreignKey("user_id", references: "id", on: User.self)
}

更多信息在这里:
https://docs.vapor.codes/2.0/fluent/database/#foreign-keys

此外,可以在准备过程中添加原始 SQL 语句,这可以使您摆脱大多数情况。例如,可以添加这一行来创建跨多列的唯一约束。

questions.raw("UNIQUE (pararent_id, title)")

但是有很多用途...