Ограничения базы данных игнорировать мягко удаленные записи при оценке уникальности - PullRequest
1 голос
/ 22 мая 2019

У меня есть модель 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 игнорировать значения из удаленных записей при оценке уникальности?

1 Ответ

2 голосов
/ 22 мая 2019

На самом деле вы не можете сказать builder игнорировать значения из удаленных записей, так как сборщик просто добавляет собственное ограничение mysql / postgres к вашей таблице.

Это необходимо сделать вручную при добавлении нового пользователя, например, запросить полную таблицу, включая удаленные записи, и перейти оттуда.

...