【发布时间】:2020-12-08 15:37:15
【问题描述】:
我正在使用 Vapor 和 Fluent。我想定义一个像下面这样的用户模型,但我收到一条错误消息:
致命错误:顶级错误:previousError(服务器:不允许表“用户”的多个主键
不能在一个模型中定义多个 UUID 吗?
import Vapor
import FluentPostgresDriver
final class User: Model, Content {
static let schema = "users"
@ID(custom: "id")
var id: Int?
@Field(key: "email")
var email: String
@Field(key: "password")
var password: String
@ID(custom: "public_id")
var public_id: UUID?
init() { }
init(id: Int? = nil,email: String, password:String, public_id: UUID? = nil) {
self.id = id
self.email = email
self.password = password
self.public_id = public_id
}
}
struct CreateUser: Migration {
func prepare(on database: Database) -> EventLoopFuture<Void> {
database.schema("users")
.field("id", .int, .identifier(auto: true))
.field("email", .string)
.field("password", .string)
.field("public_id", .uuid,?????)
.create()
}
.....
}
【问题讨论】:
-
@ID表示主键。每个表只能有一个主键。所以将此字段标记为简单@Field