mirror of
https://github.com/GSA/notifications-api.git
synced 2025-12-10 23:32:27 -05:00
We have now: - defaulted new services to start with this column set to `true` - migrated all preexisting services[1] to have either `true` or `false` set for this column There is no way for a service to switch back from `true`/`false` to `null`. This means that we can safely enforce a non-nullable constraint on this column now. 1. There is a little gotcha: the GOV.UK Notify service still relies on the `sms_sender` column. It doesn’t have a row in the `service_sms_senders` table. This means the previous migration never changed this service’s value for `prefix_sms` from `null`. So this commit also changes its value to `False`, so that the rest of the migration, of the whole column, is possible.
47 lines
952 B
Python
47 lines
952 B
Python
"""
|
|
|
|
Revision ID: 0140_sms_prefix_non_nullable
|
|
Revises: 0139_migrate_sms_allowance_data
|
|
Create Date: 2017-11-07 13:04:04.077142
|
|
|
|
"""
|
|
from alembic import op
|
|
from flask import current_app
|
|
import sqlalchemy as sa
|
|
from sqlalchemy.dialects import postgresql
|
|
|
|
revision = '0140_sms_prefix_non_nullable'
|
|
down_revision = '0139_migrate_sms_allowance_data'
|
|
|
|
|
|
def upgrade():
|
|
|
|
op.execute("""
|
|
update services
|
|
set prefix_sms = false
|
|
where id = '{}'
|
|
""".format(current_app.config['NOTIFY_SERVICE_ID']))
|
|
|
|
op.alter_column(
|
|
'services',
|
|
'prefix_sms',
|
|
existing_type=sa.BOOLEAN(),
|
|
nullable=False,
|
|
)
|
|
|
|
|
|
def downgrade():
|
|
|
|
op.alter_column(
|
|
'services',
|
|
'prefix_sms',
|
|
existing_type=sa.BOOLEAN(),
|
|
nullable=True,
|
|
)
|
|
|
|
op.execute("""
|
|
update services
|
|
set prefix_sms = null
|
|
where id = '{}'
|
|
""".format(current_app.config['NOTIFY_SERVICE_ID']))
|