Skip to content

Commit

Permalink
Fix enums (#2)
Browse files Browse the repository at this point in the history
We're mishandling enums in all three database types here. Fix it.
  • Loading branch information
gwynne authored Apr 28, 2024
1 parent 3720aa6 commit 199bd0e
Showing 1 changed file with 6 additions and 3 deletions.
9 changes: 6 additions & 3 deletions Sources/QueuesFluentDriver/JobModelMigrate.swift
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,20 @@ public struct JobModelMigration: AsyncSQLMigration {

// See `AsyncSQLMigration.prepare(on:)`.
public func prepare(on database: any SQLDatabase) async throws {
let stateEnumType = "\(JobModel.schema)_StoredJobStatus"
let stateEnumType: String

switch database.dialect.enumSyntax {
case .typeName:
stateEnumType = "\(JobModel.schema)_storedjobstatus"
try await database.create(enum: stateEnumType)
.value("pending")
.value("processing")
.value("completed")
.run()
case .inline:
stateEnumType = "enum(\(StoredJobState.allCases.map(\.rawValue).joined(separator: ",")))"
default:
break
stateEnumType = "varchar(16)"
}

try await database.create(table: JobModel.schema)
Expand Down Expand Up @@ -45,7 +48,7 @@ public struct JobModelMigration: AsyncSQLMigration {
try await database.drop(table: JobModel.schema).run()
switch database.dialect.enumSyntax {
case .typeName:
try await database.drop(enum: "\(JobModel.schema)_StoredJobStatus").run()
try await database.drop(enum: "\(JobModel.schema)_storedjobstatus").run()
default:
break
}
Expand Down

0 comments on commit 199bd0e

Please sign in to comment.