2017-07-26 13:19:17 +01:00
|
|
|
"""empty message
|
|
|
|
|
|
|
|
|
|
Revision ID: 0112_add_start_end_dates
|
|
|
|
|
Revises: 0111_drop_old_service_flags
|
|
|
|
|
Create Date: 2017-07-12 13:35:45.636618
|
|
|
|
|
|
|
|
|
|
"""
|
|
|
|
|
from datetime import datetime
|
|
|
|
|
from alembic import op
|
|
|
|
|
import sqlalchemy as sa
|
2023-07-17 07:45:54 -07:00
|
|
|
from sqlalchemy import text
|
|
|
|
|
|
2017-08-10 16:29:13 +01:00
|
|
|
from app.dao.date_util import get_month_start_and_end_date_in_utc
|
2017-07-26 13:19:17 +01:00
|
|
|
|
|
|
|
|
down_revision = '0111_drop_old_service_flags'
|
|
|
|
|
revision = '0112_add_start_end_dates'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def upgrade():
|
|
|
|
|
op.drop_index('uix_monthly_billing', 'monthly_billing')
|
2017-07-26 15:06:09 +01:00
|
|
|
op.alter_column('monthly_billing', 'month', nullable=True)
|
|
|
|
|
op.alter_column('monthly_billing', 'year', nullable=True)
|
2017-07-26 13:19:17 +01:00
|
|
|
op.add_column('monthly_billing', sa.Column('start_date', sa.DateTime))
|
|
|
|
|
op.add_column('monthly_billing', sa.Column('end_date', sa.DateTime))
|
|
|
|
|
conn = op.get_bind()
|
|
|
|
|
results = conn.execute("Select id, month, year from monthly_billing")
|
|
|
|
|
res = results.fetchall()
|
|
|
|
|
for x in res:
|
2017-08-10 16:29:13 +01:00
|
|
|
start_date, end_date = get_month_start_and_end_date_in_utc(
|
2017-07-26 13:19:17 +01:00
|
|
|
datetime(int(x.year), datetime.strptime(x.month, '%B').month, 1))
|
2023-07-17 07:45:54 -07:00
|
|
|
input_params = {
|
|
|
|
|
"start_date": start_date,
|
|
|
|
|
"end_date": end_date,
|
|
|
|
|
"x_id": x.id
|
|
|
|
|
}
|
|
|
|
|
conn.execute(text("update monthly_billing set start_date = :start_date, end_date = :end_date where id = :x_id"),
|
|
|
|
|
input_params)
|
2017-07-26 13:19:17 +01:00
|
|
|
op.alter_column('monthly_billing', 'start_date', nullable=False)
|
|
|
|
|
op.alter_column('monthly_billing', 'end_date', nullable=False)
|
|
|
|
|
op.create_index(op.f('uix_monthly_billing'), 'monthly_billing', ['service_id', 'start_date', 'notification_type'],
|
|
|
|
|
unique=True)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def downgrade():
|
|
|
|
|
op.drop_column('monthly_billing', 'start_date')
|
|
|
|
|
op.drop_column('monthly_billing', 'end_date')
|
|
|
|
|
|
|
|
|
|
op.create_index(op.f('uix_monthly_billing'), 'monthly_billing',
|
|
|
|
|
['service_id', 'month', 'year', 'notification_type'], unique=True)
|