From eda3e412f7529bd752ae102051b2dd77c5c21f31 Mon Sep 17 00:00:00 2001 From: Ken Tsang Date: Wed, 24 May 2017 11:40:57 +0100 Subject: [PATCH] Add svc perms migration script and update readme --- migrations/README | 4 ++- .../0086_migrate_default_svc_perms.py | 28 +++++++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 migrations/versions/0086_migrate_default_svc_perms.py diff --git a/migrations/README b/migrations/README index 6c36a3e0e..7c44eae44 100644 --- a/migrations/README +++ b/migrations/README @@ -1,7 +1,9 @@ Generic single-database configuration. -python application.py db migration to generate migration script. +python application.py db migrate to generate migration script. python application.py db upgrade to upgrade db with script. python application.py db downgrade to rollback db changes. + +python application.py db current to show current script. diff --git a/migrations/versions/0086_migrate_default_svc_perms.py b/migrations/versions/0086_migrate_default_svc_perms.py new file mode 100644 index 000000000..6b740a969 --- /dev/null +++ b/migrations/versions/0086_migrate_default_svc_perms.py @@ -0,0 +1,28 @@ +"""empty message + +Revision ID: 0086_migrate_default_svc_perms +Revises: 0085_update_incoming_to_inbound +Create Date: 2017-05-23 18:13:03.532095 + +""" + +# revision identifiers, used by Alembic. +revision = '0086_migrate_default_svc_perms' +down_revision = '0085_update_incoming_to_inbound' + +from alembic import op +import sqlalchemy as sa + + +def upgrade(): + def get_values(permission): + return "SELECT id, '{0}' FROM services WHERE "\ + "id NOT IN (SELECT service_id FROM service_permissions "\ + "WHERE service_id=id AND permission='{0}')".format(permission) + + op.execute("INSERT INTO service_permissions (service_id, permission) {}".format(get_values('sms'))) + op.execute("INSERT INTO service_permissions (service_id, permission) {}".format(get_values('email'))) + + +def downgrade(): + op.execute("DELETE FROM service_permissions WHERE created_at IS NULL")