From f6ecaf3c2925d161ec0c0a03325a48dd3a126910 Mon Sep 17 00:00:00 2001 From: Franziska Kunsmann Date: Sat, 12 Sep 2020 12:09:20 +0200 Subject: [PATCH] bundles/mautrix-telegram: also deploy alembic.ini, make sure alembic ini gets called if alembic scripts dir does not exist --- bundles/mautrix-telegram/files/alembic.ini | 71 ++++++++++++++++++++++ bundles/mautrix-telegram/items.py | 13 +++- 2 files changed, 82 insertions(+), 2 deletions(-) create mode 100644 bundles/mautrix-telegram/files/alembic.ini diff --git a/bundles/mautrix-telegram/files/alembic.ini b/bundles/mautrix-telegram/files/alembic.ini new file mode 100644 index 0000000..52ee476 --- /dev/null +++ b/bundles/mautrix-telegram/files/alembic.ini @@ -0,0 +1,71 @@ +# A generic, single database configuration. + +[alembic] +# path to migration scripts +script_location = /opt/mautrix-telegram/alembic + +# template used to generate migration files +# file_template = %%(rev)s_%%(slug)s + +# timezone to use when rendering the date +# within the migration file as well as the filename. +# string value is passed to dateutil.tz.gettz() +# leave blank for localtime +# timezone = + +# max length of characters to apply to the +# "slug" field +#truncate_slug_length = 40 + +# set to 'true' to run the environment during +# the 'revision' command, regardless of autogenerate +# revision_environment = false + +# set to 'true' to allow .pyc and .pyo files without +# a source .py file to be detected as revisions in the +# versions/ directory +# sourceless = false + +# version location specification; this defaults +# to alembic/versions. When using multiple version +# directories, initial revisions must be specified with --version-path +# version_locations = %(here)s/bar %(here)s/bat alembic/versions + +# the output encoding used when revision files +# are written from script.py.mako +# output_encoding = utf-8 + +# Logging configuration +[loggers] +keys = root,sqlalchemy,alembic + +[handlers] +keys = console + +[formatters] +keys = generic + +[logger_root] +level = WARN +handlers = console +qualname = + +[logger_sqlalchemy] +level = WARN +handlers = +qualname = sqlalchemy.engine + +[logger_alembic] +level = INFO +handlers = +qualname = alembic + +[handler_console] +class = StreamHandler +args = (sys.stderr,) +level = NOTSET +formatter = generic + +[formatter_generic] +format = %(levelname)-5.5s [%(name)s] %(message)s +datefmt = %H:%M:%S diff --git a/bundles/mautrix-telegram/items.py b/bundles/mautrix-telegram/items.py index 535a24f..857da7d 100644 --- a/bundles/mautrix-telegram/items.py +++ b/bundles/mautrix-telegram/items.py @@ -27,12 +27,20 @@ actions = { }, 'triggered': True, }, + 'mautrix-telegram_init_alembic': { + 'command': '/opt/mautrix-telegram/venv/bin/alembic -c /opt/mautrix-telegram/alembic.ini -x /opt/mautrix-telegram/config.yaml init /opt/mautrix-telegram/alembic', + 'unless': 'test -d /opt/mautrix-telegram/alembic', + 'needs': { + 'file:/opt/mautrix-telegram/alembic.ini', + }, + }, 'mautrix-telegram_upgrade_database': { - 'command': '/opt/mautrix-telegram/venv/bin/alembic -x /opt/mautrix-telegram/config.yaml upgrade head', + 'command': '/opt/mautrix-telegram/venv/bin/alembic -c /opt/mautrix-telegram/alembic.ini -x /opt/mautrix-telegram/config.yaml upgrade head', 'needs': { # Actually, the dependency is 'mautrix-telegram has run # atleast once, but we can't check that. 'action:mautrix-telegram_generate_registration', + 'action:mautrix-telegram_init_alembic', 'postgres_db:mautrix-telegram', 'postgres_role:mautrix-telegram', }, @@ -63,7 +71,8 @@ files = { 'triggers': { 'svc_systemd:mautrix-telegram:restart', }, - } + }, + '/opt/mautrix-telegram/alembic.ini': {}, } if node.has_bundle('matrix-synapse'):