@@ -668,19 +668,7 @@ func (r *RootCmd) Server(newAPI func(context.Context, *coderd.Options) (*coderd.
668
668
options .Database = dbmem .New ()
669
669
options .Pubsub = pubsub .NewInMemory ()
670
670
} else {
671
- dbURL , err := escapePostgresURLUserInfo (vals .PostgresURL .String ())
672
- if err != nil {
673
- return xerrors .Errorf ("escaping postgres URL: %w" , err )
674
- }
675
-
676
- if codersdk .PostgresAuth (vals .PostgresAuth ) == codersdk .PostgresAuthAWSRDSIAM {
677
- sqlDriver , err = awsrdsiam .Register (inv .Context (), sqlDriver )
678
- if err != nil {
679
- return xerrors .Errorf ("register aws rds iam auth: %w" , err )
680
- }
681
- }
682
-
683
- sqlDB , err := ConnectToPostgres (ctx , logger , sqlDriver , dbURL )
671
+ sqlDB , dbURL , err := connectToPostgres (ctx , logger , vals .PostgresURL .String (), codersdk .PostgresAuth (vals .PostgresAuth ), sqlDriver )
684
672
if err != nil {
685
673
return xerrors .Errorf ("connect to postgres: %w" , err )
686
674
}
@@ -2556,3 +2544,24 @@ func signalNotifyContext(ctx context.Context, inv *serpent.Invocation, sig ...os
2556
2544
}
2557
2545
return inv .SignalNotifyContext (ctx , sig ... )
2558
2546
}
2547
+
2548
+ func connectToPostgres (ctx context.Context , logger slog.Logger , postgresURL string , auth codersdk.PostgresAuth , sqlDriver string ) (* sql.DB , string , error ) {
2549
+ dbURL , err := escapePostgresURLUserInfo (postgresURL )
2550
+ if err != nil {
2551
+ return nil , "" , xerrors .Errorf ("escaping postgres URL: %w" , err )
2552
+ }
2553
+
2554
+ if auth == codersdk .PostgresAuthAWSRDSIAM {
2555
+ sqlDriver , err = awsrdsiam .Register (ctx , sqlDriver )
2556
+ if err != nil {
2557
+ return nil , "" , xerrors .Errorf ("register aws rds iam auth: %w" , err )
2558
+ }
2559
+ }
2560
+
2561
+ sqlDB , err := ConnectToPostgres (ctx , logger , sqlDriver , dbURL )
2562
+ if err != nil {
2563
+ return nil , "" , xerrors .Errorf ("connect to postgres: %w" , err )
2564
+ }
2565
+
2566
+ return sqlDB , dbURL , nil
2567
+ }
0 commit comments