Skip to content

Commit

Permalink
Postgres is case-sensitive for types; meanwhile, in other DBs we shou…
Browse files Browse the repository at this point in the history
…ld be specifying an inline enum or a simple string type.
  • Loading branch information
gwynne committed Apr 28, 2024
1 parent 3720aa6 commit 5c25300
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 5c25300

Please sign in to comment.