mirror of
https://github.com/GSA/notifications-api.git
synced 2026-02-03 18:01:08 -05:00
Merge pull request #994 from alphagov/ken-migrate-default-service-permissions
Ken migrate default service permissions
This commit is contained in:
@@ -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.
|
||||
|
||||
39
migrations/versions/0095_migrate_existing_svc_perms.py
Normal file
39
migrations/versions/0095_migrate_existing_svc_perms.py
Normal file
@@ -0,0 +1,39 @@
|
||||
"""empty message
|
||||
|
||||
Revision ID: 0095_migrate_existing_svc_perms
|
||||
Revises: 0094_job_stats_update
|
||||
Create Date: 2017-05-23 18:13:03.532095
|
||||
|
||||
"""
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision = '0095_migrate_existing_svc_perms'
|
||||
down_revision = '0094_job_stats_update'
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
migration_date = '2017-05-26 17:30:00.000000'
|
||||
|
||||
|
||||
def upgrade():
|
||||
def get_values(permission):
|
||||
return "SELECT id, '{0}', '{1}' FROM services WHERE "\
|
||||
"id NOT IN (SELECT service_id FROM service_permissions "\
|
||||
"WHERE service_id=id AND permission='{0}')".format(permission, migration_date)
|
||||
|
||||
def get_values_if_flag(permission, flag):
|
||||
return "SELECT id, '{0}', '{1}' FROM services WHERE "\
|
||||
"{2} AND id NOT IN (SELECT service_id FROM service_permissions "\
|
||||
"WHERE service_id=id AND permission='{0}')".format(permission, migration_date, flag)
|
||||
|
||||
op.execute("INSERT INTO service_permissions (service_id, permission, created_at) {}".format(get_values('sms')))
|
||||
op.execute("INSERT INTO service_permissions (service_id, permission, created_at) {}".format(get_values('email')))
|
||||
op.execute("INSERT INTO service_permissions (service_id, permission, created_at) {}".format(
|
||||
get_values_if_flag('letter', 'can_send_letters')))
|
||||
op.execute("INSERT INTO service_permissions (service_id, permission, created_at) {}".format(
|
||||
get_values_if_flag('international_sms', 'can_send_international_sms')))
|
||||
|
||||
|
||||
def downgrade():
|
||||
op.execute("DELETE FROM service_permissions WHERE created_at = '{}'::timestamp".format(migration_date))
|
||||
Reference in New Issue
Block a user