notify-api-56 squash migrations

This commit is contained in:
Kenneth Kehl
2023-07-19 09:19:40 -07:00
parent 018c423073
commit 7dce220dc7
50 changed files with 38 additions and 1278 deletions

View File

@@ -1,27 +0,0 @@
"""empty message
Revision ID: 0013_add_loadtest_client
Revises: 0012_complete_provider_details
Create Date: 2016-05-05 09:14:29.328841
"""
# revision identifiers, used by Alembic.
revision = '0013_add_loadtest_client'
down_revision = '0012_complete_provider_details'
import uuid
from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects import postgresql
def upgrade():
op.execute(
"INSERT INTO provider_details (id, display_name, identifier, priority, notification_type, active) values ('{}', 'Loadtesting', 'loadtesting', 30, 'sms', true)".format(str(uuid.uuid4()))
)
def downgrade():
op.drop_table('provider_details')

View File

@@ -1,14 +1,14 @@
"""empty message """empty message
Revision ID: 0014_add_template_version Revision ID: 0014_add_template_version
Revises: 0013_add_loadtest_client Revises: 0012_complete_provider_details
Create Date: 2016-05-11 16:00:51.478012 Create Date: 2016-05-11 16:00:51.478012
""" """
# revision identifiers, used by Alembic. # revision identifiers, used by Alembic.
revision = '0014_add_template_version' revision = '0014_add_template_version'
down_revision = '0013_add_loadtest_client' down_revision = '0012_complete_provider_details'
from alembic import op from alembic import op
import sqlalchemy as sa import sqlalchemy as sa

View File

@@ -1,35 +0,0 @@
"""empty message
Revision ID: 0027_update_provider_rates
Revises: 0026_rename_notify_service
Create Date: 2016-06-08 01:00:00.000000
"""
# revision identifiers, used by Alembic.
revision = '0027_update_provider_rates'
down_revision = '0026_rename_notify_service'
from alembic import op
import sqlalchemy as sa
from datetime import datetime
import uuid
def upgrade():
### commands auto generated by Alembic - please adjust! ###
op.get_bind()
op.execute((
"INSERT INTO provider_rates (id, valid_from, rate, provider_id) VALUES ('{}', '{}', 1.8, "
"(SELECT id FROM provider_details WHERE identifier = 'mmg'))").format(uuid.uuid4(), datetime.utcnow()))
op.execute((
"INSERT INTO provider_rates (id, valid_from, rate, provider_id) VALUES ('{}', '{}', 2.5, "
"(SELECT id FROM provider_details WHERE identifier = 'firetext'))").format(uuid.uuid4(), datetime.utcnow()))
### end Alembic commands ###
def downgrade():
### commands auto generated by Alembic - please adjust! ###
op.get_bind()
op.execute("DELETE FROM provider_rates")
### end Alembic commands ###

View File

@@ -1,7 +1,7 @@
"""empty message """empty message
Revision ID: 0028_fix_reg_template_history Revision ID: 0028_fix_reg_template_history
Revises: 0027_update_provider_rates Revises: 0026_rename_notify_service
Create Date: 2016-06-13 11:04:15.888017 Create Date: 2016-06-13 11:04:15.888017
""" """
@@ -10,7 +10,7 @@ Create Date: 2016-06-13 11:04:15.888017
from datetime import datetime from datetime import datetime
revision = '0028_fix_reg_template_history' revision = '0028_fix_reg_template_history'
down_revision = '0027_update_provider_rates' down_revision = '0026_rename_notify_service'
from alembic import op from alembic import op
import sqlalchemy as sa import sqlalchemy as sa

View File

@@ -1,38 +0,0 @@
"""mmg rates now set to 1.65 pence per sms
Revision ID: 0040_adjust_mmg_provider_rate
Revises: 0039_fix_notifications
Create Date: 2016-07-06 15:19:23.124212
"""
# revision identifiers, used by Alembic.
revision = '0040_adjust_mmg_provider_rate'
down_revision = '0039_fix_notifications'
import uuid
from datetime import datetime
from alembic import op
import sqlalchemy as sa
def upgrade():
### commands auto generated by Alembic - please adjust! ###
conn = op.get_bind()
conn.execute(
sa.sql.text(("INSERT INTO provider_rates (id, valid_from, rate, provider_id) "
"VALUES (:id, :valid_from, :rate, (SELECT id FROM provider_details WHERE identifier = 'mmg'))")),
id=uuid.uuid4(),
valid_from=datetime(2016, 7, 1),
rate=1.65
)
### end Alembic commands ###
def downgrade():
### commands auto generated by Alembic - please adjust! ###
conn = op.get_bind()
conn.execute(("DELETE FROM provider_rates "
"WHERE provider_id = (SELECT id FROM provider_details WHERE identifier = 'mmg') "
"AND rate = 1.65"))
### end Alembic commands ###

View File

@@ -1,66 +0,0 @@
"""empty message
Revision ID: 0041_email_template
Revises: 0040_adjust_mmg_provider_rate
Create Date: 2016-07-07 16:02:06.241769
"""
# revision identifiers, used by Alembic.
from datetime import datetime
revision = '0041_email_template'
down_revision = '0040_adjust_mmg_provider_rate'
from alembic import op
user_id = '6af522d0-2915-4e52-83a3-3690455a5fe6'
service_id = 'd6aa2c68-a2d9-4437-ab19-3ae8eb202553'
def upgrade():
template_history_insert = """INSERT INTO templates_history (id, name, template_type, created_at,
content, archived, service_id,
subject, created_by_id, version)
VALUES ('{}', '{}', '{}', '{}', '{}', False, '{}', '{}', '{}', 1)
"""
template_insert = """INSERT INTO templates (id, name, template_type, created_at,
content, archived, service_id, subject, created_by_id, version)
VALUES ('{}', '{}', '{}', '{}', '{}', False, '{}', '{}', '{}', 1)
"""
content = """You already have a GOV.UK Notify account with this email address.
Sign in here: ((signin_url))
If youve forgotten your password, you can reset it here: ((forgot_password_url))
If you didnt try to register for a GOV.UK Notify account recently, please let us know here: ((feedback_url))"""
op.get_bind()
op.execute(template_history_insert.format('0880fbb1-a0c6-46f0-9a8e-36c986381ceb',
'Your GOV.UK Notify account', 'email',
datetime.utcnow(), content, service_id,
'Your GOV.UK Notify account', user_id))
op.execute(
template_insert.format('0880fbb1-a0c6-46f0-9a8e-36c986381ceb', 'Your GOV.UK Notify account', 'email',
datetime.utcnow(), content, service_id,
'Your GOV.UK Notify account', user_id))
# If you are copying this migration, please remember about an insert to TemplateRedacted,
# which was not originally included here either by mistake or because it was before TemplateRedacted existed
# op.execute(
# """
# INSERT INTO template_redacted (template_id, redact_personalisation, updated_at, updated_by_id)
# VALUES ('0880fbb1-a0c6-46f0-9a8e-36c986381ceb', '{}', '{}', '{}')
# ;
# """.format(False, datetime.utcnow(), user_id)
# )
def downgrade():
op.execute("delete from notifications where template_id = '0880fbb1-a0c6-46f0-9a8e-36c986381ceb'")
op.execute("delete from jobs where template_id = '0880fbb1-a0c6-46f0-9a8e-36c986381ceb'")
op.execute("delete from template_statistics where template_id = '0880fbb1-a0c6-46f0-9a8e-36c986381ceb'")
op.execute("delete from templates_history where id = '0880fbb1-a0c6-46f0-9a8e-36c986381ceb'")
op.execute("delete from templates where id = '0880fbb1-a0c6-46f0-9a8e-36c986381ceb'")

View File

@@ -1,14 +1,14 @@
"""empty message """empty message
Revision ID: 0042_notification_history Revision ID: 0042_notification_history
Revises: 0041_email_template Revises: 0039_fix_notifications
Create Date: 2016-07-07 13:15:35.503107 Create Date: 2016-07-07 13:15:35.503107
""" """
# revision identifiers, used by Alembic. # revision identifiers, used by Alembic.
revision = '0042_notification_history' revision = '0042_notification_history'
down_revision = '0041_email_template' down_revision = '0039_fix_notifications'
from alembic import op from alembic import op
import sqlalchemy as sa import sqlalchemy as sa

View File

@@ -1,29 +0,0 @@
"""empty message
Revision ID: 0047_ukvi_spelling
Revises: 0046_organisations_and_branding
Create Date: 2016-08-22 16:06:32.981723
"""
# revision identifiers, used by Alembic.
revision = '0047_ukvi_spelling'
down_revision = '0046_organisations_and_branding'
from alembic import op
def upgrade():
op.execute("""
UPDATE organisation
SET name = 'UK Visas & Immigration'
WHERE id = '9d25d02d-2915-4e98-874b-974e123e8536'
""")
def downgrade():
op.execute("""
UPDATE organisation
SET name = 'UK Visas and Immigration'
WHERE id = '9d25d02d-2915-4e98-874b-974e123e8536'
""")

View File

@@ -1,14 +1,14 @@
"""empty message """empty message
Revision ID: 0048_job_scheduled_time Revision ID: 0048_job_scheduled_time
Revises: 0047_ukvi_spelling Revises: 0046_organisations_and_branding
Create Date: 2016-08-24 13:21:51.744526 Create Date: 2016-08-24 13:21:51.744526
""" """
# revision identifiers, used by Alembic. # revision identifiers, used by Alembic.
revision = '0048_job_scheduled_time' revision = '0048_job_scheduled_time'
down_revision = '0047_ukvi_spelling' down_revision = '0046_organisations_and_branding'
from alembic import op from alembic import op
import sqlalchemy as sa import sqlalchemy as sa

View File

@@ -1,67 +0,0 @@
"""empty message
Revision ID: 0057_change_email_template
Revises: 0056_minor_updates
Create Date: 2016-10-11 09:24:45.669018
"""
# revision identifiers, used by Alembic.
from datetime import datetime
from alembic import op
revision = '0057_change_email_template'
down_revision = '0056_minor_updates'
user_id = '6af522d0-2915-4e52-83a3-3690455a5fe6'
service_id = 'd6aa2c68-a2d9-4437-ab19-3ae8eb202553'
template_id = 'eb4d9930-87ab-4aef-9bce-786762687884'
def upgrade():
template_history_insert = """INSERT INTO templates_history (id, name, template_type, created_at,
content, archived, service_id,
subject, created_by_id, version)
VALUES ('{}', '{}', '{}', '{}', '{}', False, '{}', '{}', '{}', 1)
"""
template_insert = """INSERT INTO templates (id, name, template_type, created_at,
content, archived, service_id, subject, created_by_id, version)
VALUES ('{}', '{}', '{}', '{}', '{}', False, '{}', '{}', '{}', 1)
"""
template_content = \
"""Hi ((name)),\n\nClick this link to confirm your new email address:
\n\n((url))
\n\nIf you didnt try to change the email address for your GOV.UK Notify account, let us know here:
\n\n((feedback_url))"""
template_name = 'Confirm new email address'
op.execute(template_history_insert.format(template_id,
template_name,
'email',
datetime.utcnow(), template_content,
service_id,
template_name, user_id))
op.execute(template_insert.format(template_id,
template_name,
'email',
datetime.utcnow(),
template_content,
service_id,
template_name, user_id))
# If you are copying this migration, please remember about an insert to TemplateRedacted,
# which was not originally included here either by mistake or because it was before TemplateRedacted existed
# op.execute(
# """
# INSERT INTO template_redacted (template_id, redact_personalisation, updated_at, updated_by_id)
# VALUES ('{}', '{}', '{}', '{}')
# ;
# """.format(template_id, False, datetime.utcnow(), user_id)
# )
def downgrade():
op.execute("DELETE FROM notifications WHERE template_id = '{}'".format(template_id))
op.execute("DELETE FROM notification_history WHERE template_id = '{}'".format(template_id))
op.execute("delete from templates_history where id = '{}'".format(template_id))
op.execute("delete from templates where id = '{}'".format(template_id))

View File

@@ -1,14 +1,14 @@
"""empty message """empty message
Revision ID: 0058_add_letters_flag Revision ID: 0058_add_letters_flag
Revises: 0057_change_email_template Revises: 0056_minor_updates
Create Date: 2016-10-25 17:37:27.660723 Create Date: 2016-10-25 17:37:27.660723
""" """
# revision identifiers, used by Alembic. # revision identifiers, used by Alembic.
revision = '0058_add_letters_flag' revision = '0058_add_letters_flag'
down_revision = '0057_change_email_template' down_revision = '0056_minor_updates'
from alembic import op from alembic import op
import sqlalchemy as sa import sqlalchemy as sa

View File

@@ -1,31 +0,0 @@
"""empty message
Revision ID: 0066_add_dvla_provider
Revises: 0065_users_current_session_id
Create Date: 2017-03-02 10:32:28.984947
"""
import uuid
from datetime import datetime
revision = '0066_add_dvla_provider'
down_revision = '0065_users_current_session_id'
from alembic import op
def upgrade():
provider_id = str(uuid.uuid4())
op.execute(
"INSERT INTO provider_details (id, display_name, identifier, priority, notification_type, active, version) values ('{}', 'DVLA', 'dvla', 50, 'letter', true, 1)".format(provider_id)
)
op.execute(
"INSERT INTO provider_details_history (id, display_name, identifier, priority, notification_type, active, version) values ('{}', 'DVLA', 'dvla', 50, 'letter', true, 1)".format(provider_id)
)
op.execute("INSERT INTO provider_rates (id, valid_from, rate, provider_id) VALUES ('{}', '{}', 1.0, '{}')".format(uuid.uuid4(), datetime.utcnow(), provider_id))
def downgrade():
op.execute("DELETE FROM provider_rates where provider_id = (SELECT id from provider_details where display_name='DVLA')")
op.execute("DELETE FROM provider_details_history where display_name = 'DVLA'")
op.execute("DELETE FROM provider_details where display_name = 'DVLA'")

View File

@@ -1,14 +1,14 @@
"""empty message """empty message
Revision ID: 0067_service_contact_block Revision ID: 0067_service_contact_block
Revises: 0066_add_dvla_provider Revises: 0065_users_current_session_id
Create Date: 2017-02-28 11:23:40.299110 Create Date: 2017-02-28 11:23:40.299110
""" """
# revision identifiers, used by Alembic. # revision identifiers, used by Alembic.
revision = '0067_service_contact_block' revision = '0067_service_contact_block'
down_revision = '0066_add_dvla_provider' down_revision = '0065_users_current_session_id'
from alembic import op from alembic import op
import sqlalchemy as sa import sqlalchemy as sa

View File

@@ -1,28 +0,0 @@
"""empty message
Revision ID: 0074_update_sms_rate
Revises: 0073_add_international_sms_flag
Create Date: 2017-04-24 12:10:02.116278
"""
import uuid
revision = '0074_update_sms_rate'
down_revision = '0073_add_international_sms_flag'
from alembic import op
def upgrade():
op.get_bind()
op.execute("INSERT INTO provider_rates (id, valid_from, rate, provider_id) "
"VALUES ('{}', '2017-04-01 00:00:00', 1.58, "
"(SELECT id FROM provider_details WHERE identifier = 'mmg'))".format(uuid.uuid4())
)
def downgrade():
op.get_bind()
op.execute("DELETE FROM provider_rates where valid_from = '2017-04-01 00:00:00' "
"and provider_id = (SELECT id FROM provider_details WHERE identifier = 'mmg')")

View File

@@ -1,7 +1,7 @@
"""empty message """empty message
Revision ID: 0075_create_rates_table Revision ID: 0075_create_rates_table
Revises: 0074_update_sms_rate Revises: 0073_add_international_sms_flag
Create Date: 2017-04-24 15:12:18.907629 Create Date: 2017-04-24 15:12:18.907629
""" """
@@ -10,7 +10,7 @@ Create Date: 2017-04-24 15:12:18.907629
import uuid import uuid
revision = '0075_create_rates_table' revision = '0075_create_rates_table'
down_revision = '0074_update_sms_rate' down_revision = '0073_add_international_sms_flag'
from alembic import op from alembic import op
import sqlalchemy as sa import sqlalchemy as sa

View File

@@ -1,25 +0,0 @@
"""empty message
Revision ID: 0079_update_rates
Revises: 0078_sent_notification_status
Create Date: 2017-05-03 12:31:20.731069
"""
# revision identifiers, used by Alembic.
revision = '0079_update_rates'
down_revision = '0078_sent_notification_status'
from alembic import op
def upgrade():
op.get_bind()
op.execute("UPDATE RATES SET rate = 0.0158 WHERE valid_from = '2017-04-01 00:00:00'")
op.execute("UPDATE RATES SET rate = 0.0165 WHERE valid_from = '2016-05-18 00:00:00'")
def downgrade():
op.get_bind()
op.execute("UPDATE RATES SET rate = 1.58 WHERE valid_from = '2017-04-01 00:00:00'")
op.execute("UPDATE RATES SET rate = 1.65 WHERE valid_from = '2016-05-18 00:00:00'")

View File

@@ -1,24 +0,0 @@
"""empty message
Revision ID: 0080_fix_rate_start_date
Revises: 0079_update_rates
Create Date: 2017-05-03 16:50:11.334116
"""
# revision identifiers, used by Alembic.
revision = '0080_fix_rate_start_date'
down_revision = '0079_update_rates'
from alembic import op
import sqlalchemy as sa
def upgrade():
op.get_bind()
op.execute("UPDATE RATES SET valid_from = '2017-03-31 23:00:00' WHERE valid_from = '2017-04-01 00:00:00'")
def downgrade():
op.get_bind()
op.execute("UPDATE RATES SET valid_from = '2017-03-31 23:00:00' WHERE valid_from = '2017-04-01 00:00:00'")

View File

@@ -1,14 +1,14 @@
"""empty message """empty message
Revision ID: 0081_noti_status_as_enum Revision ID: 0081_noti_status_as_enum
Revises: 0080_fix_rate_start_date Revises: 0078_sent_notification_status
Create Date: 2017-05-02 14:50:04.070874 Create Date: 2017-05-02 14:50:04.070874
""" """
# revision identifiers, used by Alembic. # revision identifiers, used by Alembic.
revision = '0081_noti_status_as_enum' revision = '0081_noti_status_as_enum'
down_revision = '0080_fix_rate_start_date' down_revision = '0078_sent_notification_status'
from alembic import op from alembic import op
import sqlalchemy as sa import sqlalchemy as sa

View File

@@ -1,32 +0,0 @@
"""empty message
Revision ID: 0093_data_gov_uk
Revises: 0092_add_inbound_provider
Create Date: 2017-06-05 16:15:17.744908
"""
# revision identifiers, used by Alembic.
revision = '0093_data_gov_uk'
down_revision = '0092_add_inbound_provider'
from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects import postgresql
DATA_GOV_UK_ID = '123496d4-44cb-4324-8e0a-4187101f4bdc'
def upgrade():
op.execute("""INSERT INTO organisation VALUES (
'{}',
'',
'data_gov_uk_x2.png',
'data gov.uk'
)""".format(DATA_GOV_UK_ID))
def downgrade():
op.execute("""
DELETE FROM organisation WHERE "id" = '{}'
""".format(DATA_GOV_UK_ID))

View File

@@ -1,7 +1,7 @@
"""empty message """empty message
Revision ID: 0094_job_stats_update Revision ID: 0094_job_stats_update
Revises: 0093_data_gov_uk Revises: 0092_add_inbound_provider
Create Date: 2017-06-06 14:37:30.051647 Create Date: 2017-06-06 14:37:30.051647
""" """
@@ -10,7 +10,7 @@ import sqlalchemy as sa
# revision identifiers, used by Alembic. # revision identifiers, used by Alembic.
revision = '0094_job_stats_update' revision = '0094_job_stats_update'
down_revision = '0093_data_gov_uk' down_revision = '0092_add_inbound_provider'
def upgrade(): def upgrade():

View File

@@ -1,28 +0,0 @@
"""empty message
Revision ID: 0104_more_letter_orgs
Revises: 0103_add_historical_redact
Create Date: 2017-06-29 12:44:16.815039
"""
# revision identifiers, used by Alembic.
revision = '0104_more_letter_orgs'
down_revision = '0103_add_historical_redact'
from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects import postgresql
from flask import current_app
def upgrade():
op.execute("""
INSERT INTO dvla_organisation VALUES
('003', 'Department for Work and Pensions'),
('004', 'Government Equalities Office')
""")
def downgrade():
# data migration, no downloads
pass

View File

@@ -1,14 +1,14 @@
"""empty message """empty message
Revision ID: 0105_opg_letter_org Revision ID: 0105_opg_letter_org
Revises: 0104_more_letter_orgs Revises: 0103_add_historical_redact
Create Date: 2017-06-29 12:44:16.815039 Create Date: 2017-06-29 12:44:16.815039
""" """
# revision identifiers, used by Alembic. # revision identifiers, used by Alembic.
revision = '0105_opg_letter_org' revision = '0105_opg_letter_org'
down_revision = '0104_more_letter_orgs' down_revision = '0103_add_historical_redact'
from alembic import op from alembic import op
import sqlalchemy as sa import sqlalchemy as sa

View File

@@ -1,38 +0,0 @@
"""
Revision ID: ea1c2f80a50e
Revises: 0152_kill_service_free_fragments
Create Date: 2018-01-04 10:27:01.014640
"""
from alembic import op
import sqlalchemy as sa
revision = '0153_add_is_letter_contact_blank'
down_revision = '0152_kill_service_free_fragments'
def upgrade():
op.add_column('templates', sa.Column('is_letter_contact_blank', sa.Boolean(), nullable=True))
op.add_column('templates_history', sa.Column('is_letter_contact_blank', sa.Boolean(), nullable=True))
op.execute("update templates set is_letter_contact_blank = false")
op.execute("update templates_history set is_letter_contact_blank = false")
op.alter_column("templates", "is_letter_contact_blank", nullable=False)
op.alter_column("templates_history", "is_letter_contact_blank", nullable=False)
op.create_check_constraint(
"ck_templates_contact_block_is_blank",
"templates",
"Not(is_letter_contact_blank = True and service_letter_contact_id is not Null)"
)
op.create_check_constraint(
"ck_templates_history_contact_block_is_blank",
"templates_history",
"Not(is_letter_contact_blank = True and service_letter_contact_id is not Null)"
)
def downgrade():
op.drop_column('templates_history', 'is_letter_contact_blank')
op.drop_column('templates', 'is_letter_contact_blank')

View File

@@ -1,23 +0,0 @@
"""
Revision ID: 0154_nullable_is_blank
Revises: 0153_add_is_letter_contact_blank
Create Date: 2018-01-05 15:49:36.522210
"""
from alembic import op
import sqlalchemy as sa
revision = '0154_nullable_is_blank'
down_revision = '0153_add_is_letter_contact_blank'
def upgrade():
op.alter_column('templates', 'is_letter_contact_blank', nullable=True)
op.alter_column('templates_history', 'is_letter_contact_blank', nullable=True)
def downgrade():
op.alter_column('templates', 'is_letter_contact_blank', nullable=True)
op.alter_column('templates_history', 'is_letter_contact_blank', nullable=True)

View File

@@ -1,20 +0,0 @@
"""
Revision ID: 0155_revert_0153
Revises: 0154_nullable_is_blank
Create Date: 2018-01-05 14:09:21.200102
"""
from alembic import op
revision = '0155_revert_0153'
down_revision = '0154_nullable_is_blank'
def upgrade():
op.drop_column('templates', 'is_letter_contact_blank')
op.drop_column('templates_history', 'is_letter_contact_blank')
def downgrade():
pass

View File

@@ -1,7 +1,7 @@
""" """
Revision ID: 0156_set_temp_letter_contact Revision ID: 0156_set_temp_letter_contact
Revises: 0155_revert_0153 Revises: 0152_kill_service_free_fragments
Create Date: 2018-01-05 17:04:20.596271 Create Date: 2018-01-05 17:04:20.596271
""" """
@@ -9,7 +9,7 @@ from alembic import op
revision = '0156_set_temp_letter_contact' revision = '0156_set_temp_letter_contact'
down_revision = '0155_revert_0153' down_revision = '0152_kill_service_free_fragments'
def upgrade(): def upgrade():

View File

@@ -1,37 +0,0 @@
"""empty message
Revision ID: 0202_new_letter_pricing
Revises: 0201_another_letter_org
Create Date: 2017-07-09 12:44:16.815039
"""
revision = '0202_new_letter_pricing'
down_revision = '0201_another_letter_org'
import uuid
from datetime import datetime
from alembic import op
start = datetime(2018, 6, 30, 23, 0)
NEW_RATES = [
(uuid.uuid4(), start, 4, 0.39, True, 'second'),
(uuid.uuid4(), start, 4, 0.51, False, 'second'),
(uuid.uuid4(), start, 5, 0.42, True, 'second'),
(uuid.uuid4(), start, 5, 0.57, False, 'second'),
]
def upgrade():
conn = op.get_bind()
for id, start_date, sheet_count, rate, crown, post_class in NEW_RATES:
conn.execute("""
INSERT INTO letter_rates (id, start_date, sheet_count, rate, crown, post_class)
VALUES ('{}', '{}', '{}', '{}', '{}', '{}')
""".format(id, start_date, sheet_count, rate, crown, post_class))
def downgrade():
pass

View File

@@ -1,14 +1,14 @@
"""empty message """empty message
Revision ID: 0203_fix_old_incomplete_jobs Revision ID: 0203_fix_old_incomplete_jobs
Revises: 0202_new_letter_pricing Revises: 0201_another_letter_org
Create Date: 2017-06-29 12:44:16.815039 Create Date: 2017-06-29 12:44:16.815039
""" """
# revision identifiers, used by Alembic. # revision identifiers, used by Alembic.
revision = '0203_fix_old_incomplete_jobs' revision = '0203_fix_old_incomplete_jobs'
down_revision = '0202_new_letter_pricing' down_revision = '0201_another_letter_org'
from alembic import op from alembic import op

View File

@@ -1,25 +0,0 @@
"""
Revision ID: 0217_default_email_branding
Revises: 0216_remove_colours
Create Date: 2018-08-24 13:36:49.346156
"""
from alembic import op
from app.models import BRANDING_ORG
revision = '0217_default_email_branding'
down_revision = '0216_remove_colours'
def upgrade():
op.execute("""
update
email_branding
set
brand_type = '{}'
where
brand_type = null
""".format(BRANDING_ORG))
def downgrade():
pass

View File

@@ -1,13 +1,13 @@
"""empty message """empty message
Revision ID: 0218_another_letter_org Revision ID: 0218_another_letter_org
Revises: 0217_default_email_branding Revises: 0216_remove_colours
""" """
# revision identifiers, used by Alembic. # revision identifiers, used by Alembic.
revision = '0218_another_letter_org' revision = '0218_another_letter_org'
down_revision = '0217_default_email_branding' down_revision = '0216_remove_colours'
from alembic import op from alembic import op

View File

@@ -1,77 +0,0 @@
"""empty message
Revision ID: 0229_new_letter_rates
Revises: 0228_notification_postage
"""
revision = '0229_new_letter_rates'
down_revision = '0228_notification_postage'
import uuid
from datetime import datetime
from alembic import op
from sqlalchemy.sql import text
START = datetime(2018, 9, 30, 23, 0)
NEW_RATES = [
(uuid.uuid4(), START, 1, 0.30, False, 'second'),
(uuid.uuid4(), START, 2, 0.35, True, 'second'),
(uuid.uuid4(), START, 2, 0.35, False, 'second'),
(uuid.uuid4(), START, 3, 0.40, True, 'second'),
(uuid.uuid4(), START, 3, 0.40, False, 'second'),
(uuid.uuid4(), START, 4, 0.45, True, 'second'),
(uuid.uuid4(), START, 4, 0.45, False, 'second'),
(uuid.uuid4(), START, 5, 0.50, True, 'second'),
(uuid.uuid4(), START, 5, 0.50, False, 'second'),
(uuid.uuid4(), START, 1, 0.56, True, 'first'),
(uuid.uuid4(), START, 1, 0.56, False, 'first'),
(uuid.uuid4(), START, 2, 0.61, True, 'first'),
(uuid.uuid4(), START, 2, 0.61, False, 'first'),
(uuid.uuid4(), START, 3, 0.66, True, 'first'),
(uuid.uuid4(), START, 3, 0.66, False, 'first'),
(uuid.uuid4(), START, 4, 0.71, True, 'first'),
(uuid.uuid4(), START, 4, 0.71, False, 'first'),
(uuid.uuid4(), START, 5, 0.76, True, 'first'),
(uuid.uuid4(), START, 5, 0.76, False, 'first'),
]
def upgrade():
conn = op.get_bind()
conn.execute(text("""
update
letter_rates
set
end_date = :start
where
rate != 0.30
"""), start=START)
for id, start_date, sheet_count, rate, crown, post_class in NEW_RATES:
conn.execute(text("""
INSERT INTO letter_rates (id, start_date, sheet_count, rate, crown, post_class)
VALUES (:id, :start_date, :sheet_count, :rate, :crown, :post_class)
"""), id=id, start_date=start_date, sheet_count=sheet_count, rate=rate, crown=crown, post_class=post_class)
def downgrade():
conn = op.get_bind()
conn.execute(text("""
delete from
letter_rates
where
start_date = :start
"""), start=START)
conn.execute(text("""
update
letter_rates
set
end_date = null
where
end_date = :start
"""), start=START)

View File

@@ -1,7 +1,7 @@
""" """
Revision ID: 0230_noti_postage_constraint_1 Revision ID: 0230_noti_postage_constraint_1
Revises: 0229_new_letter_rates Revises: 0228_notification_postage
Create Date: 2018-09-19 11:42:52.229430 Create Date: 2018-09-19 11:42:52.229430
""" """
@@ -9,7 +9,7 @@ from alembic import op
revision = '0230_noti_postage_constraint_1' revision = '0230_noti_postage_constraint_1'
down_revision = '0229_new_letter_rates' down_revision = '0228_notification_postage'
def upgrade(): def upgrade():

View File

@@ -1,42 +0,0 @@
import os
"""
Revision ID: 0305_add_gp_org_type
Revises: 0304_remove_org_to_service
Create Date: 2019-07-24 16:18:27.467361
"""
from alembic import op
revision = '0305_add_gp_org_type'
down_revision = '0304_remove_org_to_service'
GP_ORG_TYPE_NAME = 'nhs_gp'
def upgrade():
op.execute("""
INSERT INTO
organisation_types
(name, is_crown, annual_free_sms_fragment_limit)
VALUES
('{}', false, 25000)
""".format(GP_ORG_TYPE_NAME))
def downgrade():
op.execute("""
UPDATE
organisation
SET
organisation_type = 'nhs_local'
WHERE
organisation_type = '{}'
""".format(GP_ORG_TYPE_NAME))
op.execute("""
DELETE FROM
organisation_types
WHERE
name = '{}'
""".format(GP_ORG_TYPE_NAME))

View File

@@ -1,68 +0,0 @@
"""
All prices going up 5p
1 sheet (double-sided) increases from 30p to 35p (plus VAT)
2 sheets (double-sided) increases from 35p to 40p (plus VAT)
3 sheets (double-sided) increases from 40p to 45p (plus VAT)
4 sheets (double-sided) increases from 45p to 50p (plus VAT)
5 sheets (double-sided) increases from 50p to 55p (plus VAT)
First class letters:
1 sheet (double-sided) increases from 56p to 61p (plus VAT)
2 sheets (double-sided) increases from 61p to 66p (plus VAT)
3 sheets (double-sided) increases from 66p to 71p (plus VAT)
4 sheets (double-sided) increases from 71p to 76p (plus VAT)
5 sheets (double-sided) increases from 76p to 81p (plus VAT)
Revision ID: 0306_letter_rates_price_rise
Revises: 0305_add_gp_org_type
Create Date: 2019-09-25 15:43:09.388251
"""
import itertools
import uuid
from datetime import datetime
from alembic import op
from sqlalchemy.sql import text
revision = '0306_letter_rates_price_rise'
down_revision = '0305_add_gp_org_type'
CHANGEOVER_DATE = datetime(2019, 9, 30, 23, 0)
def upgrade():
# all old rates are going in the bin
conn = op.get_bind()
# conn.execute(text("UPDATE letter_rates SET end_date = :start WHERE end_date IS NULL"), start=CHANGEOVER_DATE)
# base_prices = {
# 'second': 30,
# 'first': 56,
# }
# op.bulk_insert('letter_rates', [
# {
# 'id': uuid.uuid4(),
# 'start_date': CHANGEOVER_DATE,
# 'end_date': None,
# 'sheet_count': sheet_count,
# 'rate': (base_prices[post_class] + (5 * sheet_count)) / 100.0,
# 'crown': crown,
# 'post_class': post_class,
# }
# for sheet_count, crown, post_class in itertools.product(
# range(1, 6),
# [True, False],
# ['first', 'second']
# )
# ])
def downgrade():
# Make sure you've thought about billing implications etc before downgrading!
conn = op.get_bind()
conn.execute(text("DELETE FROM letter_rates WHERE start_date = :start"), start=CHANGEOVER_DATE)
conn.execute(text("UPDATE letter_rates SET end_date = NULL WHERE end_date = :start"), start=CHANGEOVER_DATE)

View File

@@ -1,7 +1,7 @@
""" """
Revision ID: 0307_delete_dm_datetime Revision ID: 0307_delete_dm_datetime
Revises: 0306_letter_rates_price_rise Revises: 0304_remove_org_to_service
Create Date: 2019-10-08 10:57:54.824807 Create Date: 2019-10-08 10:57:54.824807
""" """
@@ -10,7 +10,7 @@ import sqlalchemy as sa
from sqlalchemy.dialects import postgresql from sqlalchemy.dialects import postgresql
revision = '0307_delete_dm_datetime' revision = '0307_delete_dm_datetime'
down_revision = '0306_letter_rates_price_rise' down_revision = '0304_remove_org_to_service'
def upgrade(): def upgrade():

View File

@@ -1,53 +0,0 @@
"""
Revision ID: 0324_int_letter_rates
Revises: 0323_broadcast_message
Create Date: 2020-07-08 12:20:20.700128
"""
import itertools
import uuid
from datetime import datetime
from alembic import op
from sqlalchemy.sql import text
revision = '0324_int_letter_rates'
down_revision = '0323_broadcast_message'
base_rate = 76
start_date = datetime(2020, 7, 1, 0, 0)
def upgrade():
"""
Insert these letter rates for a post_class of both `europe` and `rest-of-world`:
1 sheet - £0.84
2 sheets - £0.92
3 sheets - £1.00
4 sheets - £1.08
5 sheets - £1.16
"""
# op.bulk_insert('letter_rates', [
# {
# 'id': uuid.uuid4(),
# 'start_date': start_date,
# 'end_date': None,
# 'sheet_count': sheet_count,
# 'rate': (base_rate + (8 * sheet_count)) / 100.0,
# 'crown': crown,
# 'post_class': post_class,
# }
# for sheet_count, crown, post_class in itertools.product(
# range(1, 6),
# [True, False],
# ['europe', 'rest-of-world']
# )
# ])
pass
def downgrade():
conn = op.get_bind()
conn.execute(text("DELETE FROM letter_rates WHERE start_date = :start"), start=start_date)

View File

@@ -1,32 +0,0 @@
"""
Revision ID: 0325_int_letter_rates_fix
Revises: 0324_int_letter_rates
Create Date: 2020-07-15 10:09:17.218183
"""
from datetime import datetime
from alembic import op
from sqlalchemy.sql import text
revision = '0325_int_letter_rates_fix'
down_revision = '0324_int_letter_rates'
old_start_date = datetime(2020, 7, 1, 0, 0)
new_start_date = datetime(2020, 6, 30, 23, 0)
def upgrade():
conn = op.get_bind()
conn.execute(text(
"""UPDATE letter_rates SET start_date = :new_start_date WHERE start_date = :old_start_date"""
), new_start_date=new_start_date, old_start_date=old_start_date)
def downgrade():
conn = op.get_bind()
conn.execute(text(
"""UPDATE letter_rates SET start_date = :old_start_date WHERE start_date = :new_start_date"""
), old_start_date=old_start_date, new_start_date=new_start_date)

View File

@@ -1,7 +1,7 @@
""" """
Revision ID: 0326_broadcast_event Revision ID: 0326_broadcast_event
Revises: 0325_int_letter_rates_fix Revises: 0323_broadcast_message
Create Date: 2020-07-24 12:40:35.809523 Create Date: 2020-07-24 12:40:35.809523
""" """
@@ -10,7 +10,7 @@ import sqlalchemy as sa
from sqlalchemy.dialects import postgresql from sqlalchemy.dialects import postgresql
revision = '0326_broadcast_event' revision = '0326_broadcast_event'
down_revision = '0325_int_letter_rates_fix' down_revision = '0323_broadcast_message'
def upgrade(): def upgrade():

View File

@@ -1,60 +0,0 @@
"""
Revision ID: 0341_new_letter_rates
Revises: 0340_stub_training_broadcasts
Create Date: 2021-01-27 11:58:21.393227
"""
import itertools
import uuid
from datetime import datetime
from alembic import op
from sqlalchemy.sql import text
revision = '0341_new_letter_rates'
down_revision = '0340_stub_training_broadcasts'
CHANGEOVER_DATE = datetime(2021, 2, 1, 0, 0)
def get_new_rate(sheet_count, post_class):
base_prices = {
'second': 34,
'first': 64,
'europe': 81,
'rest-of-world': 81,
}
multiplier = 5 if post_class in ('first', 'second') else 8
return (base_prices[post_class] + (multiplier * sheet_count)) / 100.0
def upgrade():
conn = op.get_bind()
# conn.execute(text("UPDATE letter_rates SET end_date = :start WHERE end_date IS NULL"), start=CHANGEOVER_DATE)
# op.bulk_insert('letter_rates', [
# {
# 'id': uuid.uuid4(),
# 'start_date': CHANGEOVER_DATE,
# 'end_date': None,
# 'sheet_count': sheet_count,
# 'rate': get_new_rate(sheet_count, post_class),
# 'crown': crown,
# 'post_class': post_class,
# }
# for sheet_count, crown, post_class in itertools.product(
# range(1, 6),
# [True, False],
# ['first', 'second', 'europe', 'rest-of-world']
# )
# ])
def downgrade():
# Make sure you've thought about billing implications etc before downgrading!
conn = op.get_bind()
conn.execute(text("DELETE FROM letter_rates WHERE start_date = :start"), start=CHANGEOVER_DATE)
conn.execute(text("UPDATE letter_rates SET end_date = NULL WHERE end_date = :start"), start=CHANGEOVER_DATE)

View File

@@ -1,7 +1,7 @@
""" """
Revision ID: 0342_service_broadcast_settings Revision ID: 0342_service_broadcast_settings
Revises: 0341_new_letter_rates Revises: 0340_stub_training_broadcasts
Create Date: 2021-01-28 21:30:23.102340 Create Date: 2021-01-28 21:30:23.102340
""" """
@@ -10,7 +10,7 @@ import sqlalchemy as sa
from sqlalchemy.dialects import postgresql from sqlalchemy.dialects import postgresql
revision = '0342_service_broadcast_settings' revision = '0342_service_broadcast_settings'
down_revision = '0341_new_letter_rates' down_revision = '0340_stub_training_broadcasts'
CHANNEL_TYPES = ["test", "severe"] CHANNEL_TYPES = ["test", "severe"]

View File

@@ -1,23 +0,0 @@
"""
Revision ID: 0350_update_rates
Revises: 0349_add_ft_processing_time
Create Date: 2021-04-01 08:00:24.775338
"""
import uuid
from alembic import op
revision = '0350_update_rates'
down_revision = '0349_add_ft_processing_time'
def upgrade():
op.get_bind()
op.execute("INSERT INTO rates(id, valid_from, rate, notification_type) "
"VALUES('{}', '2021-03-31 23:00:00', 0.0160, 'sms')".format(uuid.uuid4()))
def downgrade():
pass

View File

@@ -1,7 +1,7 @@
""" """
Revision ID: 0351_unique_key_annual_billing Revision ID: 0351_unique_key_annual_billing
Revises: 0350_update_rates Revises: 0349_add_ft_processing_time
Create Date: 2021-04-12 09:02:45.098875 Create Date: 2021-04-12 09:02:45.098875
""" """
@@ -10,7 +10,7 @@ import os
from alembic import op from alembic import op
revision = '0351_unique_key_annual_billing' revision = '0351_unique_key_annual_billing'
down_revision = '0350_update_rates' down_revision = '0349_add_ft_processing_time'
environment = os.environ['NOTIFY_ENVIRONMENT'] environment = os.environ['NOTIFY_ENVIRONMENT']

View File

@@ -1,58 +0,0 @@
"""
Revision ID: 0365_add_nhs_branding
Revises: 0364_drop_old_column
Create Date: 2022-02-17 16:31:21.415065
"""
import os
from alembic import op
revision = '0365_add_nhs_branding'
down_revision = '0364_drop_old_column'
environment = os.environ['NOTIFY_ENVIRONMENT']
def upgrade():
if environment not in ["live", "production"]:
op.execute("""
DELETE FROM service_email_branding
WHERE email_branding_id in (
SELECT id
FROM email_branding
WHERE name = 'NHS'
)
""")
op.execute("""
UPDATE organisation SET email_branding_id = null
WHERE email_branding_id in(
SELECT id
FROM email_branding
WHERE name = 'NHS'
)
""")
op.execute("""
DELETE FROM email_branding WHERE name = 'NHS'
""")
op.execute("""
INSERT INTO email_branding (
id, logo, name, brand_type
)
VALUES (
'a7dc4e56-660b-4db7-8cff-12c37b12b5ea',
'1ac6f483-3105-4c9e-9017-dd7fb2752c44-nhs-blue_x2.png',
'NHS',
'org'
)
""")
def downgrade():
"""
No downgrade step since this is not fully reversible, but won't be run in production.
"""

View File

@@ -1,61 +0,0 @@
"""
Revision ID: 0366_letter_rates_2022
Revises: 0365_add_nhs_branding
Create Date: 2022-03-01 14:00:00
"""
import itertools
import uuid
from datetime import datetime
from alembic import op
from sqlalchemy.sql import text
revision = '0366_letter_rates_2022'
down_revision = '0365_add_nhs_branding'
CHANGEOVER_DATE = datetime(2022, 3, 1, 0, 0)
def get_new_rate(sheet_count, post_class):
base_prices = {
'second': 36,
'first': 58,
'europe': 88,
'rest-of-world': 88,
}
multiplier = 5 if post_class in ('first', 'second') else 8
return (base_prices[post_class] + (multiplier * sheet_count)) / 100.0
def upgrade():
conn = op.get_bind()
# conn.execute(text("UPDATE letter_rates SET end_date = :start WHERE end_date IS NULL"), start=CHANGEOVER_DATE)
# op.bulk_insert('letter_rates', [
# {
# 'id': uuid.uuid4(),
# 'start_date': CHANGEOVER_DATE,
# 'end_date': None,
# 'sheet_count': sheet_count,
# 'rate': get_new_rate(sheet_count, post_class),
# 'crown': crown,
# 'post_class': post_class,
# }
# for sheet_count, crown, post_class in itertools.product(
# range(1, 6),
# [True, False],
# ['first', 'second', 'europe', 'rest-of-world']
# )
# ])
def downgrade():
# Make sure you've thought about billing implications etc before downgrading!
conn = op.get_bind()
conn.execute(text("DELETE FROM letter_rates WHERE start_date = :start"), start=CHANGEOVER_DATE)
conn.execute(text("UPDATE letter_rates SET end_date = NULL WHERE end_date = :start"), start=CHANGEOVER_DATE)

View File

@@ -1,52 +0,0 @@
"""
Revision ID: 0367_add_reach
Revises: 0366_letter_rates_2022
Create Date: 2022-03-24 16:00:00
"""
import itertools
import uuid
from datetime import datetime
from alembic import op
from sqlalchemy.sql import text
revision = '0367_add_reach'
down_revision = '0366_letter_rates_2022'
def upgrade():
conn = op.get_bind()
conn.execute(
"""
INSERT INTO provider_details (
id,
display_name,
identifier,
priority,
notification_type,
active,
version,
created_by_id
)
VALUES (
'{}',
'Reach',
'reach',
0,
'sms',
false,
1,
null
)
""".format(
str(uuid.uuid4()),
)
)
def downgrade():
conn = op.get_bind()
conn.execute("DELETE FROM provider_details WHERE identifier = 'reach'")

View File

@@ -1,31 +0,0 @@
"""
Revision ID: 0368_move_orgs_to_nhs_branding
Revises: 0367_add_reach
Create Date: 2022-04-12 18:22:12.069016
"""
from alembic import op
revision = '0368_move_orgs_to_nhs_branding'
down_revision = '0367_add_reach'
def upgrade():
op.execute("""
UPDATE
organisation
SET
email_branding_id = 'a7dc4e56-660b-4db7-8cff-12c37b12b5ea'
WHERE
organisation_type IN ('nhs_central', 'nhs_local', 'nhs_gp')
AND
email_branding_id IS NULL
""")
# ### end Alembic commands ###
def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
pass
# ### end Alembic commands ###

View File

@@ -1,24 +0,0 @@
"""
Revision ID: 0369_update_sms_rates
Revises: 0368_move_orgs_to_nhs_branding
Create Date: 2022-04-26 09:39:45.260951
"""
import uuid
from alembic import op
revision = '0369_update_sms_rates'
down_revision = '0368_move_orgs_to_nhs_branding'
def upgrade():
op.execute(
"INSERT INTO rates(id, valid_from, rate, notification_type) "
f"VALUES('{uuid.uuid4()}', '2022-04-30 23:00:00', 0.0172, 'sms')"
)
def downgrade():
pass

View File

@@ -1,52 +0,0 @@
"""
Revision ID: 0370_remove_reach
Revises: 0369_update_sms_rates
Create Date: 2022-04-27 16:00:00
"""
import itertools
import uuid
from datetime import datetime
from alembic import op
from sqlalchemy.sql import text
revision = '0370_remove_reach'
down_revision = '0369_update_sms_rates'
def upgrade():
conn = op.get_bind()
conn.execute("DELETE FROM provider_details WHERE identifier = 'reach'")
def downgrade():
conn = op.get_bind()
conn.execute(
"""
INSERT INTO provider_details (
id,
display_name,
identifier,
priority,
notification_type,
active,
version,
created_by_id
)
VALUES (
'{}',
'Reach',
'reach',
0,
'sms',
false,
1,
null
)
""".format(
str(uuid.uuid4()),
)
)

View File

@@ -1,34 +0,0 @@
"""
Revision ID: 0371_fix_apr_2022_sms_rate
Revises: 0370_remove_reach
Create Date: 2022-04-26 09:39:45.260951
"""
import uuid
from alembic import op
revision = '0371_fix_apr_2022_sms_rate'
down_revision = '0370_remove_reach'
def upgrade():
op.execute(
"INSERT INTO rates(id, valid_from, rate, notification_type) "
f"VALUES('{uuid.uuid4()}', '2022-03-31 23:00:00', 0.0161, 'sms')"
)
op.execute(
"""
UPDATE ft_billing
SET rate = 0.0161
WHERE
notification_type = 'sms' AND
bst_date >= '2022-04-01' AND
bst_date < '2022-05-01'
"""
)
def downgrade():
pass

View File

@@ -1,7 +1,7 @@
""" """
Revision ID: 0372_remove_provider_rates Revision ID: 0372_remove_provider_rates
Revises: 0371_fix_apr_2022_sms_rate Revises: 0364_drop_old_column
Create Date: 2022-04-26 09:39:45.260951 Create Date: 2022-04-26 09:39:45.260951
""" """
@@ -11,7 +11,7 @@ import sqlalchemy as sa
from sqlalchemy.dialects import postgresql from sqlalchemy.dialects import postgresql
revision = '0372_remove_provider_rates' revision = '0372_remove_provider_rates'
down_revision = '0371_fix_apr_2022_sms_rate' down_revision = '0364_drop_old_column'
def upgrade(): def upgrade():