From c05478ce4cecf3ab449e8f3f063a86232ad04e31 Mon Sep 17 00:00:00 2001 From: Martin Krizek Date: Wed, 15 Jul 2015 08:08:20 +0000 Subject: [PATCH] Add alembic upgrade db to execdb role --- roles/taskotron/execdb/tasks/main.yml | 9 ++ .../taskotron/execdb/templates/alembic.ini.j2 | 84 +++++++++++++++++++ 2 files changed, 93 insertions(+) create mode 100644 roles/taskotron/execdb/templates/alembic.ini.j2 diff --git a/roles/taskotron/execdb/tasks/main.yml b/roles/taskotron/execdb/tasks/main.yml index 73d4299327..1b3b74c38e 100644 --- a/roles/taskotron/execdb/tasks/main.yml +++ b/roles/taskotron/execdb/tasks/main.yml @@ -63,5 +63,14 @@ notify: - restart httpd +- name: generate alembic.ini + template: src=alembic.ini.j2 dest=/usr/share/execdb/alembic.ini owner=root group=root mode=0644 + - name: initialize execdb database shell: PROD='true' execdb init_db + +- name: initialize alembic + shell: PROD='true' execdb init_alembic + +- name: upgrade execdb database via alembic + shell: PROD='true' execdb upgrade_db diff --git a/roles/taskotron/execdb/templates/alembic.ini.j2 b/roles/taskotron/execdb/templates/alembic.ini.j2 new file mode 100644 index 0000000000..09b4c7e232 --- /dev/null +++ b/roles/taskotron/execdb/templates/alembic.ini.j2 @@ -0,0 +1,84 @@ +# A generic, single database configuration. + +[alembic] +# path to migration scripts +script_location = alembic + +# template used to generate migration files +# file_template = %%(rev)s_%%(slug)s + +# 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 + +sqlalchemy.url = driver://user:pass@localhost/dbname + +[alembic-packaged] +# path to migration scripts on a packaged install +script_location = /usr/share/execdb/alembic + +{%- if deployment_type == 'prod' %} +sqlalchemy.url = 'postgresql+psycopg2://{{ prod_execdb_db_user }}:{{ prod_execdb_db_password }}@{{ execdb_db_host }}:{{ execdb_db_port }}/{{ execdb_db_name }}' +{% endif %} +{%- if deployment_type == 'stg' %} +sqlalchemy.url = 'postgresql+psycopg2://{{ stg_execdb_db_user }}:{{ stg_execdb_db_password }}@{{ execdb_db_host }}:{{ execdb_db_port }}/{{ execdb_db_name }}' +{% endif %} +{%- if deployment_type == 'dev' %} +sqlalchemy.url = 'postgresql+psycopg2://{{ dev_execdb_db_user }}:{{ dev_execdb_db_password }}@{{ execdb_db_host }}:{{ execdb_db_port }}/{{ execdb_db_name }}' +{% endif %} +{%- if deployment_type == 'local' %} +sqlalchemy.url = 'postgresql+psycopg2://{{ local_execdb_db_user }}:{{ local_execdb_db_password }}@127.0.0.1:{{ execdb_db_port }}/{{ execdb_db_name }}' +{% endif %} + +# 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