summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/dialects/postgresql/provision.py
diff options
context:
space:
mode:
authorFederico Caselli <cfederico87@gmail.com>2023-03-15 20:23:40 +0100
committerFederico Caselli <cfederico87@gmail.com>2023-03-15 20:23:54 +0100
commit7aa97a8c249e75dcc08f509313018520f74a86cb (patch)
treecaba14c8e9a1a48ff4e55ecdefe4d9ab1f2ba278 /lib/sqlalchemy/dialects/postgresql/provision.py
parente8baf5aa010ce7e3dea9b0ccf5e8b0b90f4310ad (diff)
downloadsqlalchemy-7aa97a8c249e75dcc08f509313018520f74a86cb.tar.gz
automatically provision hstore for pg13+
Change-Id: I5cd7e9e9ab8a1dae2bd467a1e4299d7f26183301
Diffstat (limited to 'lib/sqlalchemy/dialects/postgresql/provision.py')
-rw-r--r--lib/sqlalchemy/dialects/postgresql/provision.py15
1 files changed, 12 insertions, 3 deletions
diff --git a/lib/sqlalchemy/dialects/postgresql/provision.py b/lib/sqlalchemy/dialects/postgresql/provision.py
index 5c6b9fcea..582157604 100644
--- a/lib/sqlalchemy/dialects/postgresql/provision.py
+++ b/lib/sqlalchemy/dialects/postgresql/provision.py
@@ -148,9 +148,18 @@ def _upsert(cfg, table, returning, set_lambda=None):
return stmt
+_extensions = [
+ ("citext", (13,)),
+ ("hstore", (13,)),
+]
+
+
@post_configure_engine.for_db("postgresql")
def _create_citext_extension(url, engine, follower_ident):
with engine.connect() as conn:
- if conn.dialect.server_version_info >= (13,):
- conn.execute(text("CREATE EXTENSION IF NOT EXISTS citext"))
- conn.commit()
+ for extension, min_version in _extensions:
+ if conn.dialect.server_version_info >= min_version:
+ conn.execute(
+ text(f"CREATE EXTENSION IF NOT EXISTS {extension}")
+ )
+ conn.commit()