我有一个User
模型,用户可用来在我的Vapor(Swift)应用程序中创建帐户。
User
实现了Migration
协议,如下所示:
static func prepare(on conn: PostgreSQLConnection) -> Future<Void> {
return Database.create(self, on: conn) { (builder) in
try addProperties(to: builder)
builder.unique(on: \.email)
}
}
现在,这很好用,但是如果用户(soft-)删除帐户并尝试再次使用相同的电子邮件地址注册,则他们将无法使用,因为该电子邮件已被使用
在评估唯一性时,如何告诉builder
忽略已删除条目中的值?
答案 0 :(得分:2)
您实际上无法告诉builder
忽略已删除条目中的值,因为构建器只是向表中添加了本地mysql / postgres约束。
添加新用户时,您将必须手动执行此操作,例如查询整个表,包括已删除的条目,然后从那里开始。