@@ -1740,24 +1740,24 @@ func connectToPostgres(ctx context.Context, logger slog.Logger, driver string, d
1740
1740
}
1741
1741
1742
1742
// Ensure the PostgreSQL version is >=13.0.0!
1743
- version , err := sqlDB .QueryContext (ctx , "SHOW server_version ;" )
1743
+ version , err := sqlDB .QueryContext (ctx , "SHOW server_version_num ;" )
1744
1744
if err != nil {
1745
1745
return nil , xerrors .Errorf ("get postgres version: %w" , err )
1746
1746
}
1747
1747
if ! version .Next () {
1748
1748
return nil , xerrors .Errorf ("no rows returned for version select" )
1749
1749
}
1750
- var versionStr string
1751
- err = version .Scan (& versionStr )
1750
+ var versionNum int
1751
+ err = version .Scan (& versionNum )
1752
1752
if err != nil {
1753
1753
return nil , xerrors .Errorf ("scan version: %w" , err )
1754
1754
}
1755
1755
_ = version .Close ()
1756
- versionStr = strings . Split ( versionStr , " " )[ 0 ]
1757
- if semver . Compare ( "v" + versionStr , "v13" ) < 0 {
1758
- return nil , xerrors .New ("PostgreSQL version must be v13.0.0 or higher!" )
1756
+
1757
+ if versionNum < 130000 {
1758
+ return nil , xerrors .Errorf ("PostgreSQL version must be v13.0.0 or higher! Got: %d" , versionNum )
1759
1759
}
1760
- logger .Debug (ctx , "connected to postgresql" , slog .F ("version" , versionStr ))
1760
+ logger .Debug (ctx , "connected to postgresql" , slog .F ("version" , versionNum ))
1761
1761
1762
1762
err = migrations .Up (sqlDB )
1763
1763
if err != nil {
0 commit comments