diff options
| author | mike bayer <mike_mp@zzzcomputing.com> | 2020-08-14 22:20:44 +0000 |
|---|---|---|
| committer | Gerrit Code Review <gerrit@bbpush.zzzcomputing.com> | 2020-08-14 22:20:44 +0000 |
| commit | 8a274e0058183cebeb37d3a5e7903209ce5e7c0e (patch) | |
| tree | e4a961d163c6d594e29fc09d1bd7240123d13548 /lib/sqlalchemy/dialects/postgresql/provision.py | |
| parent | f91d335e31e5e14794e349b74edc08aad0f361e3 (diff) | |
| parent | 3231e281efb2f36dd0dbd628efcd684175064386 (diff) | |
| download | sqlalchemy-8a274e0058183cebeb37d3a5e7903209ce5e7c0e.tar.gz | |
Merge "Provision on different drivers dynamically"
Diffstat (limited to 'lib/sqlalchemy/dialects/postgresql/provision.py')
| -rw-r--r-- | lib/sqlalchemy/dialects/postgresql/provision.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/lib/sqlalchemy/dialects/postgresql/provision.py b/lib/sqlalchemy/dialects/postgresql/provision.py index 6c6dc4be6..eb82a411e 100644 --- a/lib/sqlalchemy/dialects/postgresql/provision.py +++ b/lib/sqlalchemy/dialects/postgresql/provision.py @@ -1,13 +1,30 @@ +import copy import time from ... import exc from ... import text from ...testing.provision import create_db from ...testing.provision import drop_db +from ...testing.provision import generate_driver_url from ...testing.provision import log from ...testing.provision import temp_table_keyword_args +@generate_driver_url.for_db("postgresql") +def generate_driver_url(url, driver): + new_url = copy.copy(url) + new_url.drivername = "postgresql+%s" % driver + if new_url.get_driver_name() == "asyncpg": + new_url.query = dict(new_url.query) + new_url.query["async_fallback"] = "true" + try: + new_url.get_dialect() + except exc.NoSuchModuleError: + return None + else: + return new_url + + @create_db.for_db("postgresql") def _pg_create_db(cfg, eng, ident): template_db = cfg.options.postgresql_templatedb |
