Files
notifications-api/migrations/versions/0151_refactor_letter_rates.py
Kenneth Kehl cefb8a281f more files
2023-07-17 11:29:08 -07:00

87 lines
3.5 KiB
Python

"""
Revision ID: 0151_refactor_letter_rates
Revises: 0149_add_crown_to_services
Create Date: 2017-12-05 10:24:41.232128
"""
import uuid
from datetime import datetime
from alembic import op
import sqlalchemy as sa
from sqlalchemy import text
from sqlalchemy.dialects import postgresql
revision = '0151_refactor_letter_rates'
down_revision = '0149_add_crown_to_services'
def upgrade():
op.drop_table('letter_rate_details')
op.drop_table('letter_rates')
op.create_table('letter_rates',
sa.Column('id', postgresql.UUID(as_uuid=True), nullable=False),
sa.Column('start_date', sa.DateTime(), nullable=False),
sa.Column('end_date', sa.DateTime(), nullable=True),
sa.Column('sheet_count', sa.Integer(), nullable=False),
sa.Column('rate', sa.Numeric(), nullable=False),
sa.Column('crown', sa.Boolean(), nullable=False),
sa.Column('post_class', sa.String(), nullable=False),
sa.PrimaryKeyConstraint('id')
)
start_date = datetime(2016, 3, 31, 23, 00, 00)
conn = op.get_bind()
input_params = {
"id": uuid.uuid4(),
"start_date": start_date
}
conn.execute(text("insert into letter_rates values(:id, :start_date, null, 1, 0.30, True, 'second')"), input_params)
input_params = {
"id": uuid.uuid4(),
"start_date": start_date
}
conn.execute(text("insert into letter_rates values(:id, :start_date, null, 2, 0.33, True, 'second')"), input_params)
input_params = {
"id": uuid.uuid4(),
"start_date": start_date
}
conn.execute(text("insert into letter_rates values(:id, :start_date, null, 3, 0.36, True, 'second')"), input_params)
input_params = {
"id": uuid.uuid4(),
"start_date": start_date
}
conn.execute(text("insert into letter_rates values(:id, :start_date, null, 1, 0.33, False, 'second')"), input_params)
input_params = {
"id": uuid.uuid4(),
"start_date": start_date
}
conn.execute(text("insert into letter_rates values(:id, :start_date, null, 2, 0.39, False, 'second')"), input_params)
input_params = {
"id": uuid.uuid4(),
"start_date": start_date
}
conn.execute(text("insert into letter_rates values(:id, :start_date, null, 3, 0.45, False, 'second')"), input_params)
def downgrade():
op.drop_table('letter_rates')
op.create_table('letter_rates',
sa.Column('id', postgresql.UUID(), autoincrement=False, nullable=False),
sa.Column('valid_from', postgresql.TIMESTAMP(), autoincrement=False, nullable=False),
sa.PrimaryKeyConstraint('id', name='letter_rates_pkey'),
postgresql_ignore_search_path=False
)
op.create_table('letter_rate_details',
sa.Column('id', postgresql.UUID(), autoincrement=False, nullable=False),
sa.Column('letter_rate_id', postgresql.UUID(), autoincrement=False, nullable=False),
sa.Column('page_total', sa.INTEGER(), autoincrement=False, nullable=False),
sa.Column('rate', sa.NUMERIC(), autoincrement=False, nullable=False),
sa.ForeignKeyConstraint(['letter_rate_id'], ['letter_rates.id'],
name='letter_rate_details_letter_rate_id_fkey'),
sa.PrimaryKeyConstraint('id', name='letter_rate_details_pkey')
)