26 lines
810 B
Swift
26 lines
810 B
Swift
import FluentKit
|
|
|
|
/// Creates and drops the `passkeys` table backing ``PasskeyRecord``.
|
|
struct CreatePasskey: AsyncMigration {
|
|
|
|
// MARK: Methods
|
|
|
|
func prepare(on database: Database) async throws {
|
|
try await database.schema(PasskeyRecord.schema)
|
|
.id()
|
|
.field("user_id", .uuid, .required, .references(UserRecord.schema, "id", onDelete: .cascade))
|
|
.field("credential_id", .string, .required)
|
|
.field("public_key", .string, .required)
|
|
.field("sign_count", .int, .required)
|
|
.field("created_at", .datetime, .required)
|
|
.unique(on: "credential_id")
|
|
.create()
|
|
}
|
|
|
|
func revert(on database: Database) async throws {
|
|
try await database.schema(PasskeyRecord.schema)
|
|
.delete()
|
|
}
|
|
|
|
}
|