diff --git a/src/pypgstac/python/pypgstac/db.py b/src/pypgstac/python/pypgstac/db.py index d4d7bb6..001ec55 100644 --- a/src/pypgstac/python/pypgstac/db.py +++ b/src/pypgstac/python/pypgstac/db.py @@ -271,15 +271,18 @@ def pg_version(self) -> str: """Get the current pg version number from a pgstac database.""" version = self.query_one( """ - SHOW server_version; + SHOW server_version_num; """, ) logger.debug(f"PG VERSION: {version}.") if isinstance(version, bytes): version = version.decode() if isinstance(version, str): - if int(version.split(".")[0]) < 13: - raise Exception("PgSTAC requires PostgreSQL 13+") + if int(version) < 130000: + major, minor, patch = tuple( + map(int, [version[i:i + 2] for i in range(0, len(version), 2)]), + ) + raise Exception(f"PgSTAC requires PostgreSQL 13+, current version is: {major}.{minor}.{patch}") # noqa: E501 return version else: if self.connection is not None: diff --git a/src/pypgstac/python/pypgstac/migrate.py b/src/pypgstac/python/pypgstac/migrate.py index 6855ff3..ea4c124 100644 --- a/src/pypgstac/python/pypgstac/migrate.py +++ b/src/pypgstac/python/pypgstac/migrate.py @@ -122,8 +122,16 @@ def run_migration(self, toversion: Optional[str] = None) -> str: logger.info("using unreleased version") toversion = "unreleased" - pg_version = self.db.pg_version - logger.info(f"Migrating PgSTAC on PostgreSQL Version {pg_version}") + major, minor, patch = tuple( + map( + int, + [ + self.db.pg_version[i:i + 2] + for i in range(0, len(self.db.pg_version), 2) + ], + ), + ) + logger.info(f"Migrating PgSTAC on PostgreSQL Version {major}.{minor}.{patch}") oldversion = self.db.version if oldversion == toversion: logger.info(f"Target database already at version: {toversion}")