Skip to content

Commit

Permalink
bugfix: set of alembic db conn
Browse files Browse the repository at this point in the history
  • Loading branch information
alex75 committed Dec 12, 2023
1 parent 982df79 commit cd424b3
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 23 deletions.
12 changes: 6 additions & 6 deletions alembic.ini
Original file line number Diff line number Diff line change
Expand Up @@ -60,12 +60,12 @@ version_path_separator = os # Use os.pathsep. Default configuration used for ne
# are written from script.py.mako
# output_encoding = utf-8

drivername = drivername
username = username
password = password
host = host
port = port
database = database
drivername =
username =
password =
host =
port =
database =
sqlalchemy.url = %(drivername)s://%(username)s:%(password)s@%(host)s:%(port)s/%(database)s

[post_write_hooks]
Expand Down
26 changes: 10 additions & 16 deletions alembic/env.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,14 +33,11 @@ def run_migrations_offline() -> None:
Calls to alembic.context.execute() here emit the given string to the
script output.
"""
url = sa.engine.URL.create(
drivername=config.get_main_option("drivername"), # type: ignore
username=config.get_main_option("username"),
password=config.get_main_option("password"),
host=config.get_main_option("host"),
port=config.get_main_option("port"), # type: ignore
database=config.get_main_option("database"),
)
url_props = dict()
for prop in ["drivername", "username", "password", "host", "port", "database"]:
url_props[prop] = config.get_main_option(prop)
url_props["port"] = url_props["port"] and int(url_props["port"]) or None # type: ignore
url = sa.engine.URL.create(**url_props) # type: ignore
alembic.context.configure(
url=url,
target_metadata=cads_broker.database.BaseModel.metadata,
Expand All @@ -57,14 +54,11 @@ def run_migrations_online() -> None:
In this scenario we need to create an Engine
and associate a connection with the alembic.context.
"""
url = sa.engine.URL.create(
drivername=config.get_main_option("drivername"), # type: ignore
username=config.get_main_option("username"),
password=config.get_main_option("password"),
host=config.get_main_option("host"),
port=config.get_main_option("port"), # type: ignore
database=config.get_main_option("database"),
)
url_props = dict()
for prop in ["drivername", "username", "password", "host", "port", "database"]:
url_props[prop] = config.get_main_option(prop)
url_props["port"] = url_props["port"] and int(url_props["port"]) or None # type: ignore
url = sa.engine.URL.create(**url_props) # type: ignore
engine = sa.create_engine(url, poolclass=sa.pool.NullPool)
with engine.connect() as connection:
alembic.context.configure(
Expand Down
5 changes: 4 additions & 1 deletion cads_broker/database.py
Original file line number Diff line number Diff line change
Expand Up @@ -585,7 +585,10 @@ def init_database(connection_string: str, force: bool = False) -> sa.engine.Engi
alembic_config_path = os.path.join(migration_directory, "alembic.ini")
alembic_cfg = alembic.config.Config(alembic_config_path)
for option in ["drivername", "username", "password", "host", "port", "database"]:
alembic_cfg.set_main_option(option, str(getattr(engine.url, option)))
value = getattr(engine.url, option)
if value is None:
value = ""
alembic_cfg.set_main_option(option, str(value))
if not sqlalchemy_utils.database_exists(engine.url):
sqlalchemy_utils.create_database(engine.url)
# cleanup and create the schema
Expand Down

0 comments on commit cd424b3

Please sign in to comment.