添加外键约束 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)")
但是有很多用途...
当我启动此命令行 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)")
但是有很多用途...