Skip to content

Commit 434f632

Browse files
authored
Split migrations into its own library PostgresMigrations (#28)
* Split migrations into its own library PostgresMigrations This is in preparation for splitting JobsPostgres into its own repo. Renamed PostgresMigration symbols to DatabaseMigration Created separate test targets for each library * Make sure we remove all the Hummingbird references... ... from jobs and migrations * Add PostgresMigrations product * Add deprecated symbols
1 parent ecc20ca commit 434f632

File tree

18 files changed

+178
-95
lines changed

18 files changed

+178
-95
lines changed

Package.swift

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ let package = Package(
1010
platforms: [.macOS(.v14), .iOS(.v17), .tvOS(.v17)],
1111
products: [
1212
.library(name: "HummingbirdPostgres", targets: ["HummingbirdPostgres"]),
13+
.library(name: "PostgresMigrations", targets: ["PostgresMigrations"]),
1314
.library(name: "JobsPostgres", targets: ["JobsPostgres"]),
1415
],
1516
dependencies: [
@@ -21,15 +22,23 @@ let package = Package(
2122
.target(
2223
name: "HummingbirdPostgres",
2324
dependencies: [
25+
"PostgresMigrations",
2426
.product(name: "Hummingbird", package: "hummingbird"),
2527
.product(name: "PostgresNIO", package: "postgres-nio"),
2628
],
2729
swiftSettings: swiftSettings
2830
),
31+
.target(
32+
name: "PostgresMigrations",
33+
dependencies: [
34+
.product(name: "PostgresNIO", package: "postgres-nio"),
35+
],
36+
swiftSettings: swiftSettings
37+
),
2938
.target(
3039
name: "JobsPostgres",
3140
dependencies: [
32-
"HummingbirdPostgres",
41+
"PostgresMigrations",
3342
.product(name: "Jobs", package: "swift-jobs"),
3443
.product(name: "PostgresNIO", package: "postgres-nio"),
3544
],
@@ -39,10 +48,20 @@ let package = Package(
3948
name: "HummingbirdPostgresTests",
4049
dependencies: [
4150
"HummingbirdPostgres",
42-
"JobsPostgres",
4351
.product(name: "HummingbirdTesting", package: "hummingbird"),
44-
],
45-
swiftSettings: swiftSettings
52+
]
53+
),
54+
.testTarget(
55+
name: "PostgresMigrationsTests",
56+
dependencies: [
57+
"PostgresMigrations",
58+
]
59+
),
60+
.testTarget(
61+
name: "JobsPostgresTests",
62+
dependencies: [
63+
"JobsPostgres",
64+
]
4665
),
4766
]
4867
)

[email protected]

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ let package = Package(
88
platforms: [.macOS(.v14), .iOS(.v17), .tvOS(.v17)],
99
products: [
1010
.library(name: "HummingbirdPostgres", targets: ["HummingbirdPostgres"]),
11+
.library(name: "PostgresMigrations", targets: ["PostgresMigrations"]),
1112
.library(name: "JobsPostgres", targets: ["JobsPostgres"]),
1213
],
1314
dependencies: [
@@ -19,14 +20,21 @@ let package = Package(
1920
.target(
2021
name: "HummingbirdPostgres",
2122
dependencies: [
23+
"PostgresMigrations",
2224
.product(name: "Hummingbird", package: "hummingbird"),
2325
.product(name: "PostgresNIO", package: "postgres-nio"),
2426
]
2527
),
28+
.target(
29+
name: "PostgresMigrations",
30+
dependencies: [
31+
.product(name: "PostgresNIO", package: "postgres-nio"),
32+
]
33+
),
2634
.target(
2735
name: "JobsPostgres",
2836
dependencies: [
29-
"HummingbirdPostgres",
37+
"PostgresMigrations",
3038
.product(name: "Jobs", package: "swift-jobs"),
3139
.product(name: "PostgresNIO", package: "postgres-nio"),
3240
]
@@ -35,9 +43,20 @@ let package = Package(
3543
name: "HummingbirdPostgresTests",
3644
dependencies: [
3745
"HummingbirdPostgres",
38-
"JobsPostgres",
3946
.product(name: "HummingbirdTesting", package: "hummingbird"),
4047
]
4148
),
49+
.testTarget(
50+
name: "PostgresMigrationsTests",
51+
dependencies: [
52+
"PostgresMigrations",
53+
]
54+
),
55+
.testTarget(
56+
name: "JobsPostgresTests",
57+
dependencies: [
58+
"JobsPostgres",
59+
]
60+
),
4261
]
4362
)

Snippets/PSQLSoakTestQueue.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
import HummingbirdPostgres
21
import Jobs
32
import JobsPostgres
43
import Logging
54
import NIOCore
65
import NIOPosix
6+
import PostgresMigrations
77
import PostgresNIO
88
import ServiceLifecycle
99

@@ -13,7 +13,7 @@ let postgresClient = PostgresClient(
1313
configuration: .init(host: "localhost", port: 5432, username: "test_user", password: "test_password", database: "test_db", tls: .disable),
1414
backgroundLogger: logger
1515
)
16-
let postgresMigrations = PostgresMigrations()
16+
let postgresMigrations = DatabaseMigrations()
1717
let jobQueue = await JobQueue(
1818
.postgres(
1919
client: postgresClient,

Sources/HummingbirdPostgres/CreatePersistTable.swift

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,10 @@
1313
//===----------------------------------------------------------------------===//
1414

1515
import Logging
16+
import PostgresMigrations
1617
import PostgresNIO
1718

18-
struct CreatePersistTable: PostgresMigration {
19+
struct CreatePersistTable: DatabaseMigration {
1920
func apply(connection: PostgresConnection, logger: Logger) async throws {
2021
try await connection.query(
2122
"""
@@ -37,10 +38,10 @@ struct CreatePersistTable: PostgresMigration {
3738
}
3839

3940
var name: String { "_Create_Persist_Table_" }
40-
var group: PostgresMigrationGroup { .persist }
41+
var group: DatabaseMigrationGroup { .persist }
4142
}
4243

43-
extension PostgresMigrationGroup {
44+
extension DatabaseMigrationGroup {
4445
/// Persist driver migration group
4546
public static var persist: Self { .init("_hb_pg_persist") }
4647
}

Sources/HummingbirdPostgres/PostgresPersistDriver.swift

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import AsyncAlgorithms
1616
import Foundation
1717
import Hummingbird
1818
import NIOCore
19+
import PostgresMigrations
1920
import PostgresNIO
2021

2122
extension PSQLError {
@@ -62,15 +63,15 @@ public final class PostgresPersistDriver: PersistDriver {
6263
let client: PostgresClient
6364
let logger: Logger
6465
let tidyUpFrequency: Duration
65-
let migrations: PostgresMigrations
66+
let migrations: DatabaseMigrations
6667

6768
/// Initialize PostgresPersistDriver
6869
/// - Parameters:
6970
/// - client: Postgres client
70-
/// - migrations: Migrations array to add persist migrations
71+
/// - migrations: DatabaseMigrations array to add persist migrations
7172
/// - tidyUpFrequency: How frequently cleanup expired database entries should occur
7273
/// - logger: Logger used by persist
73-
public init(client: PostgresClient, migrations: PostgresMigrations, tidyUpFrequency: Duration = .seconds(600), logger: Logger) async {
74+
public init(client: PostgresClient, migrations: DatabaseMigrations, tidyUpFrequency: Duration = .seconds(600), logger: Logger) async {
7475
self.client = client
7576
self.logger = logger
7677
self.tidyUpFrequency = tidyUpFrequency

Sources/JobsPostgres/Migrations/CreateJobDelay.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@
1212
//
1313
//===----------------------------------------------------------------------===//
1414

15-
import HummingbirdPostgres
1615
import Logging
16+
import PostgresMigrations
1717
import PostgresNIO
1818

19-
struct CreateJobDelay: PostgresMigration {
19+
struct CreateJobDelay: DatabaseMigration {
2020
func apply(connection: PostgresConnection, logger: Logger) async throws {
2121
try await connection.query(
2222
"""
@@ -34,5 +34,5 @@ struct CreateJobDelay: PostgresMigration {
3434
}
3535

3636
var name: String { "_Create_JobQueueDelay_Table_" }
37-
var group: PostgresMigrationGroup { .jobQueue }
37+
var group: DatabaseMigrationGroup { .jobQueue }
3838
}

Sources/JobsPostgres/Migrations/CreateJobQueue.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@
1212
//
1313
//===----------------------------------------------------------------------===//
1414

15-
import HummingbirdPostgres
1615
import Logging
16+
import PostgresMigrations
1717
import PostgresNIO
1818

19-
struct CreateJobQueue: PostgresMigration {
19+
struct CreateJobQueue: DatabaseMigration {
2020
func apply(connection: PostgresConnection, logger: Logger) async throws {
2121
try await connection.query(
2222
"""
@@ -44,5 +44,5 @@ struct CreateJobQueue: PostgresMigration {
4444
}
4545

4646
var name: String { "_Create_JobQueue_Table_" }
47-
var group: PostgresMigrationGroup { .jobQueue }
47+
var group: DatabaseMigrationGroup { .jobQueue }
4848
}

Sources/JobsPostgres/Migrations/CreateJobQueueMetadata.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@
1212
//
1313
//===----------------------------------------------------------------------===//
1414

15-
import HummingbirdPostgres
1615
import Logging
16+
import PostgresMigrations
1717
import PostgresNIO
1818

19-
struct CreateJobQueueMetadata: PostgresMigration {
19+
struct CreateJobQueueMetadata: DatabaseMigration {
2020
func apply(connection: PostgresConnection, logger: Logger) async throws {
2121
try await connection.query(
2222
"""
@@ -37,5 +37,5 @@ struct CreateJobQueueMetadata: PostgresMigration {
3737
}
3838

3939
var name: String { "_Create_JobQueue_Metadata_Table_" }
40-
var group: PostgresMigrationGroup { .jobQueue }
40+
var group: DatabaseMigrationGroup { .jobQueue }
4141
}

Sources/JobsPostgres/Migrations/CreateJobs.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@
1212
//
1313
//===----------------------------------------------------------------------===//
1414

15-
import HummingbirdPostgres
1615
import Logging
16+
import PostgresMigrations
1717
import PostgresNIO
1818

19-
struct CreateJobs: PostgresMigration {
19+
struct CreateJobs: DatabaseMigration {
2020
func apply(connection: PostgresConnection, logger: Logger) async throws {
2121
try await connection.query(
2222
"""
@@ -46,10 +46,10 @@ struct CreateJobs: PostgresMigration {
4646
}
4747

4848
var name: String { "_Create_Jobs_Table_" }
49-
var group: PostgresMigrationGroup { .jobQueue }
49+
var group: DatabaseMigrationGroup { .jobQueue }
5050
}
5151

52-
extension PostgresMigrationGroup {
52+
extension DatabaseMigrationGroup {
5353
/// JobQueue migration group
5454
public static var jobQueue: Self { .init("_hb_jobqueue") }
5555
}

Sources/JobsPostgres/PostgresJobsQueue.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@
1313
//===----------------------------------------------------------------------===//
1414

1515
import Foundation
16-
import HummingbirdPostgres
1716
import Jobs
1817
import Logging
1918
import NIOConcurrencyHelpers
2019
import NIOCore
20+
import PostgresMigrations
2121
import PostgresNIO
2222

2323
/// Postgres Job queue implementation
@@ -98,7 +98,7 @@ public final class PostgresJobQueue: JobQueueDriver {
9898
/// Logger used by queue
9999
public let logger: Logger
100100

101-
let migrations: PostgresMigrations
101+
let migrations: DatabaseMigrations
102102
let isStopped: NIOLockedValueBox<Bool>
103103

104104
/// Initialize a PostgresJobQueue
@@ -107,7 +107,7 @@ public final class PostgresJobQueue: JobQueueDriver {
107107
/// - migrations: Database migrations to update
108108
/// - configuration: Queue configuration
109109
/// - logger: Logger used by queue
110-
public init(client: PostgresClient, migrations: PostgresMigrations, configuration: Configuration = .init(), logger: Logger) async {
110+
public init(client: PostgresClient, migrations: DatabaseMigrations, configuration: Configuration = .init(), logger: Logger) async {
111111
self.client = client
112112
self.configuration = configuration
113113
self.logger = logger
@@ -358,7 +358,7 @@ extension JobQueueDriver where Self == PostgresJobQueue {
358358
/// - migrations: Database migrations to update
359359
/// - configuration: Queue configuration
360360
/// - logger: Logger used by queue
361-
public static func postgres(client: PostgresClient, migrations: PostgresMigrations, configuration: PostgresJobQueue.Configuration = .init(), logger: Logger) async -> Self {
361+
public static func postgres(client: PostgresClient, migrations: DatabaseMigrations, configuration: PostgresJobQueue.Configuration = .init(), logger: Logger) async -> Self {
362362
await Self(client: client, migrations: migrations, configuration: configuration, logger: logger)
363363
}
364364
}

0 commit comments

Comments
 (0)