mirror of
https://github.com/GSA/notifications-api.git
synced 2026-09-11 02:23:32 -04:00
Merge pull request #659 from GSA/ADMIN-97_Resend_Expired_Invites
Admin 97 resend expired invites
This commit is contained in:
+15
-34
@@ -117,9 +117,7 @@ def purge_functional_test_data(user_email_prefix):
|
||||
current_app.logger.error("Can only be run in development")
|
||||
return
|
||||
|
||||
users = User.query.filter(
|
||||
User.email_address.like("{}%".format(user_email_prefix))
|
||||
).all()
|
||||
users = User.query.filter(User.email_address.like(f"{user_email_prefix}%")).all()
|
||||
for usr in users:
|
||||
# Make sure the full email includes a uuid in it
|
||||
# Just in case someone decides to use a similar email address.
|
||||
@@ -127,9 +125,7 @@ def purge_functional_test_data(user_email_prefix):
|
||||
uuid.UUID(usr.email_address.split("@")[0].split("+")[1])
|
||||
except ValueError:
|
||||
print(
|
||||
"Skipping {} as the user email doesn't contain a UUID.".format(
|
||||
usr.email_address
|
||||
)
|
||||
f"Skipping {usr.email_address} as the user email doesn't contain a UUID."
|
||||
)
|
||||
else:
|
||||
services = dao_fetch_all_services_by_user(usr.id)
|
||||
@@ -164,7 +160,7 @@ def purge_functional_test_data(user_email_prefix):
|
||||
def insert_inbound_numbers_from_file(file_name):
|
||||
# TODO maintainability what is the purpose of this command? Who would use it and why?
|
||||
|
||||
print("Inserting inbound numbers from {}".format(file_name))
|
||||
print(f"Inserting inbound numbers from {file_name}")
|
||||
with open(file_name) as file:
|
||||
sql = "insert into inbound_numbers values('{}', '{}', 'sns', null, True, now(), null);"
|
||||
|
||||
@@ -199,9 +195,7 @@ def rebuild_ft_billing_for_day(service_id, day):
|
||||
def rebuild_ft_data(process_day, service):
|
||||
deleted_rows = delete_billing_data_for_service_for_day(process_day, service)
|
||||
current_app.logger.info(
|
||||
"deleted {} existing billing rows for {} on {}".format(
|
||||
deleted_rows, service, process_day
|
||||
)
|
||||
f"deleted {deleted_rows} existing billing rows for {service} on {process_day}"
|
||||
)
|
||||
transit_data = fetch_billing_data_for_day(
|
||||
process_day=process_day, service_id=service
|
||||
@@ -211,9 +205,7 @@ def rebuild_ft_billing_for_day(service_id, day):
|
||||
# upsert existing rows
|
||||
update_fact_billing(data, process_day)
|
||||
current_app.logger.info(
|
||||
"added/updated {} billing rows for {} on {}".format(
|
||||
len(transit_data), service, process_day
|
||||
)
|
||||
f"added/updated {len(transit_data)} billing rows for {service} on {process_day}"
|
||||
)
|
||||
|
||||
if service_id:
|
||||
@@ -276,7 +268,7 @@ def bulk_invite_user_to_service(file_name, service_id, user_id, auth_type, permi
|
||||
}
|
||||
current_app.logger.info(f"DATA = {data}")
|
||||
with current_app.test_request_context(
|
||||
path="/service/{}/invite/".format(service_id),
|
||||
path=f"/service/{service_id}/invite/",
|
||||
method="POST",
|
||||
data=json.dumps(data),
|
||||
headers={"Content-Type": "application/json"},
|
||||
@@ -286,16 +278,12 @@ def bulk_invite_user_to_service(file_name, service_id, user_id, auth_type, permi
|
||||
current_app.logger.info(f"RESPONSE {response[1]}")
|
||||
if response[1] != 201:
|
||||
print(
|
||||
"*** ERROR occurred for email address: {}".format(
|
||||
email_address.strip()
|
||||
)
|
||||
f"*** ERROR occurred for email address: {email_address.strip()}"
|
||||
)
|
||||
print(response[0].get_data(as_text=True))
|
||||
except Exception as e:
|
||||
print(
|
||||
"*** ERROR occurred for email address: {}. \n{}".format(
|
||||
email_address.strip(), e
|
||||
)
|
||||
f"*** ERROR occurred for email address: {email_address.strip()}. \n{e}"
|
||||
)
|
||||
|
||||
file.close()
|
||||
@@ -318,7 +306,7 @@ def bulk_invite_user_to_service(file_name, service_id, user_id, auth_type, permi
|
||||
)
|
||||
def update_jobs_archived_flag(start_date, end_date):
|
||||
current_app.logger.info(
|
||||
"Archiving jobs created between {} to {}".format(start_date, end_date)
|
||||
f"Archiving jobs created between {start_date} to {end_date}"
|
||||
)
|
||||
|
||||
process_date = start_date
|
||||
@@ -337,15 +325,14 @@ def update_jobs_archived_flag(start_date, end_date):
|
||||
)
|
||||
db.session.commit()
|
||||
current_app.logger.info(
|
||||
"jobs: --- Completed took {}ms. Archived {} jobs for {}".format(
|
||||
datetime.now() - start_time, result.rowcount, process_date
|
||||
)
|
||||
f"jobs: --- Completed took {datetime.now() - start_time}ms. Archived "
|
||||
f"{result.rowcount} jobs for {process_date}"
|
||||
)
|
||||
|
||||
process_date += timedelta(days=1)
|
||||
|
||||
total_updated += result.rowcount
|
||||
current_app.logger.info("Total archived jobs = {}".format(total_updated))
|
||||
current_app.logger.info(f"Total archived jobs = {total_updated}")
|
||||
|
||||
|
||||
@notify_command(name="populate-organizations-from-file")
|
||||
@@ -551,9 +538,7 @@ def fix_billable_units():
|
||||
show_prefix=notification.service.prefix_sms,
|
||||
)
|
||||
print(
|
||||
"Updating notification: {} with {} billable_units".format(
|
||||
notification.id, template.fragment_count
|
||||
)
|
||||
f"Updating notification: {notification.id} with {template.fragment_count} billable_units"
|
||||
)
|
||||
|
||||
Notification.query.filter(Notification.id == notification.id).update(
|
||||
@@ -586,9 +571,7 @@ def process_row_from_job(job_id, job_row_number):
|
||||
if row.index == job_row_number:
|
||||
notification_id = process_row(row, template, job, job.service)
|
||||
current_app.logger.info(
|
||||
"Process row {} for job {} created notification_id: {}".format(
|
||||
job_row_number, job_id, notification_id
|
||||
)
|
||||
f"Process row {job_row_number} for job {job_id} created notification_id: {notification_id}"
|
||||
)
|
||||
|
||||
|
||||
@@ -623,9 +606,7 @@ def populate_annual_billing_with_the_previous_years_allowance(year):
|
||||
latest_annual_billing, {"service_id": row.id}
|
||||
)
|
||||
free_allowance = [x[0] for x in free_allowance_rows]
|
||||
print(
|
||||
"create free limit of {} for service: {}".format(free_allowance[0], row.id)
|
||||
)
|
||||
print(f"create free limit of {free_allowance[0]} for service: {row.id}")
|
||||
dao_create_or_update_annual_billing_for_year(
|
||||
service_id=row.id,
|
||||
free_sms_fragment_limit=free_allowance[0],
|
||||
|
||||
+16
-12
@@ -1,7 +1,7 @@
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
from app import db
|
||||
from app.models import INVITE_EXPIRED, InvitedUser
|
||||
from app.models import INVITE_EXPIRED, INVITE_PENDING, InvitedUser
|
||||
|
||||
|
||||
def save_invited_user(invited_user):
|
||||
@@ -13,32 +13,36 @@ def get_invited_user_by_service_and_id(service_id, invited_user_id):
|
||||
return InvitedUser.query.filter(
|
||||
InvitedUser.service_id == service_id,
|
||||
InvitedUser.id == invited_user_id,
|
||||
InvitedUser.status != INVITE_EXPIRED,
|
||||
).one()
|
||||
|
||||
|
||||
def get_expired_invite_by_service_and_id(service_id, invited_user_id):
|
||||
return InvitedUser.query.filter(
|
||||
InvitedUser.service_id == service_id,
|
||||
InvitedUser.id == invited_user_id,
|
||||
InvitedUser.status == INVITE_EXPIRED,
|
||||
).one()
|
||||
|
||||
|
||||
def get_invited_user_by_id(invited_user_id):
|
||||
return InvitedUser.query.filter(
|
||||
InvitedUser.id == invited_user_id, InvitedUser.status != INVITE_EXPIRED
|
||||
).one()
|
||||
return InvitedUser.query.filter(InvitedUser.id == invited_user_id).one()
|
||||
|
||||
|
||||
def get_expired_invited_users_for_service(service_id):
|
||||
return InvitedUser.query.filter(
|
||||
InvitedUser.service_id == service_id, InvitedUser.status == INVITE_EXPIRED
|
||||
).all()
|
||||
return InvitedUser.query.filter(InvitedUser.service_id == service_id).all()
|
||||
|
||||
|
||||
def get_invited_users_for_service(service_id):
|
||||
return InvitedUser.query.filter(
|
||||
InvitedUser.service_id == service_id, InvitedUser.status != INVITE_EXPIRED
|
||||
).all()
|
||||
return InvitedUser.query.filter(InvitedUser.service_id == service_id).all()
|
||||
|
||||
|
||||
def expire_invitations_created_more_than_two_days_ago():
|
||||
expired = (
|
||||
db.session.query(InvitedUser)
|
||||
.filter(InvitedUser.created_at <= datetime.utcnow() - timedelta(days=2))
|
||||
.filter(
|
||||
InvitedUser.created_at <= datetime.utcnow() - timedelta(days=2),
|
||||
InvitedUser.status.in_((INVITE_PENDING,)),
|
||||
)
|
||||
.update({InvitedUser.status: INVITE_EXPIRED})
|
||||
)
|
||||
db.session.commit()
|
||||
|
||||
@@ -87,9 +87,7 @@ def persist_notification(
|
||||
if not notification_id:
|
||||
notification_id = uuid.uuid4()
|
||||
|
||||
current_app.logger.info(
|
||||
"Persisting notification with id {}".format(notification_id)
|
||||
)
|
||||
current_app.logger.info(f"Persisting notification with id {notification_id}")
|
||||
|
||||
notification = Notification(
|
||||
id=notification_id,
|
||||
@@ -124,9 +122,7 @@ def persist_notification(
|
||||
notification.phone_prefix = recipient_info.country_prefix
|
||||
notification.rate_multiplier = recipient_info.billable_units
|
||||
elif notification_type == EMAIL_TYPE:
|
||||
current_app.logger.info(
|
||||
"Persisting notification with type: {}".format(EMAIL_TYPE)
|
||||
)
|
||||
current_app.logger.info(f"Persisting notification with type: {EMAIL_TYPE}")
|
||||
notification.normalised_to = format_email_address(notification.to)
|
||||
|
||||
# if simulated create a Notification model to return but do not persist the Notification to the dB
|
||||
@@ -141,9 +137,7 @@ def persist_notification(
|
||||
)
|
||||
|
||||
current_app.logger.info(
|
||||
"{} {} created at {}".format(
|
||||
notification_type, notification_id, notification_created_at
|
||||
)
|
||||
f"{notification_type} {notification_id} created at {notification_created_at}"
|
||||
)
|
||||
return notification
|
||||
|
||||
@@ -170,15 +164,16 @@ def send_notification_to_queue_detached(
|
||||
raise
|
||||
|
||||
current_app.logger.debug(
|
||||
"{} {} sent to the {} queue for delivery".format(
|
||||
notification_type, notification_id, queue
|
||||
)
|
||||
f"{notification_type} {notification_id} sent to the {queue} queue for delivery"
|
||||
)
|
||||
|
||||
|
||||
def send_notification_to_queue(notification, queue=None):
|
||||
send_notification_to_queue_detached(
|
||||
notification.key_type, notification.notification_type, notification.id, queue
|
||||
notification.key_type,
|
||||
notification.notification_type,
|
||||
notification.id,
|
||||
queue,
|
||||
)
|
||||
|
||||
|
||||
|
||||
+46
-11
@@ -1,9 +1,12 @@
|
||||
from datetime import datetime
|
||||
|
||||
from flask import Blueprint, current_app, jsonify, request
|
||||
from itsdangerous import BadData, SignatureExpired
|
||||
from notifications_utils.url_safe_token import check_token, generate_token
|
||||
|
||||
from app.config import QueueNames
|
||||
from app.dao.invited_user_dao import (
|
||||
get_expired_invite_by_service_and_id,
|
||||
get_expired_invited_users_for_service,
|
||||
get_invited_user_by_id,
|
||||
get_invited_user_by_service_and_id,
|
||||
@@ -12,7 +15,7 @@ from app.dao.invited_user_dao import (
|
||||
)
|
||||
from app.dao.templates_dao import dao_get_template_by_id
|
||||
from app.errors import InvalidRequest, register_errors
|
||||
from app.models import EMAIL_TYPE, KEY_TYPE_NORMAL, Service
|
||||
from app.models import EMAIL_TYPE, INVITE_PENDING, KEY_TYPE_NORMAL, Service
|
||||
from app.notifications.process_notifications import (
|
||||
persist_notification,
|
||||
send_notification_to_queue,
|
||||
@@ -24,15 +27,11 @@ service_invite = Blueprint("service_invite", __name__)
|
||||
register_errors(service_invite)
|
||||
|
||||
|
||||
@service_invite.route("/service/<service_id>/invite", methods=["POST"])
|
||||
def create_invited_user(service_id):
|
||||
request_json = request.get_json()
|
||||
invited_user = invited_user_schema.load(request_json)
|
||||
save_invited_user(invited_user)
|
||||
|
||||
def _create_service_invite(invited_user, invite_link_host):
|
||||
template_id = current_app.config["INVITATION_EMAIL_TEMPLATE_ID"]
|
||||
|
||||
template = dao_get_template_by_id(template_id)
|
||||
|
||||
service = Service.query.get(current_app.config["NOTIFY_SERVICE_ID"])
|
||||
|
||||
saved_notification = persist_notification(
|
||||
@@ -43,10 +42,7 @@ def create_invited_user(service_id):
|
||||
personalisation={
|
||||
"user_name": invited_user.from_user.name,
|
||||
"service_name": invited_user.service.name,
|
||||
"url": invited_user_url(
|
||||
invited_user.id,
|
||||
request_json.get("invite_link_host"),
|
||||
),
|
||||
"url": invited_user_url(invited_user.id, invite_link_host),
|
||||
},
|
||||
notification_type=EMAIL_TYPE,
|
||||
api_key_id=None,
|
||||
@@ -56,6 +52,15 @@ def create_invited_user(service_id):
|
||||
|
||||
send_notification_to_queue(saved_notification, queue=QueueNames.NOTIFY)
|
||||
|
||||
|
||||
@service_invite.route("/service/<service_id>/invite", methods=["POST"])
|
||||
def create_invited_user(service_id):
|
||||
request_json = request.get_json()
|
||||
invited_user = invited_user_schema.load(request_json)
|
||||
save_invited_user(invited_user)
|
||||
|
||||
_create_service_invite(invited_user, request_json.get("invite_link_host"))
|
||||
|
||||
return jsonify(data=invited_user_schema.dump(invited_user)), 201
|
||||
|
||||
|
||||
@@ -92,6 +97,36 @@ def update_invited_user(service_id, invited_user_id):
|
||||
return jsonify(data=invited_user_schema.dump(fetched)), 200
|
||||
|
||||
|
||||
@service_invite.route(
|
||||
"/service/<service_id>/invite/<invited_user_id>/resend", methods=["POST"]
|
||||
)
|
||||
def resend_service_invite(service_id, invited_user_id):
|
||||
"""Resend an expired invite.
|
||||
|
||||
This resets the invited user's created date and status to make it a new invite, and
|
||||
sends the new invite out to the user.
|
||||
|
||||
Note:
|
||||
This ignores the POST data entirely.
|
||||
"""
|
||||
fetched = get_expired_invite_by_service_and_id(
|
||||
service_id=service_id,
|
||||
invited_user_id=invited_user_id,
|
||||
)
|
||||
|
||||
fetched.created_at = datetime.utcnow()
|
||||
fetched.status = INVITE_PENDING
|
||||
|
||||
current_data = {k: v for k, v in invited_user_schema.dump(fetched).items()}
|
||||
update_dict = invited_user_schema.load(current_data)
|
||||
|
||||
save_invited_user(update_dict)
|
||||
|
||||
_create_service_invite(fetched, current_app.config["ADMIN_BASE_URL"])
|
||||
|
||||
return jsonify(data=invited_user_schema.dump(fetched)), 200
|
||||
|
||||
|
||||
def invited_user_url(invited_user_id, invite_link_host=None):
|
||||
token = generate_token(
|
||||
str(invited_user_id),
|
||||
|
||||
+3
-3
@@ -1,10 +1,10 @@
|
||||
import os
|
||||
import socket
|
||||
import sys
|
||||
import traceback
|
||||
import gunicorn
|
||||
import eventlet
|
||||
import socket
|
||||
|
||||
import eventlet
|
||||
import gunicorn
|
||||
|
||||
workers = 4
|
||||
worker_class = "eventlet"
|
||||
|
||||
+3
-1
@@ -1,7 +1,9 @@
|
||||
from __future__ import with_statement
|
||||
|
||||
from logging.config import fileConfig
|
||||
|
||||
from alembic import context
|
||||
from sqlalchemy import engine_from_config, pool
|
||||
from logging.config import fileConfig
|
||||
|
||||
# this is the Alembic Config object, which provides
|
||||
# access to the values within the .ini file in use.
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2016-04-07 17:22:12.147542
|
||||
revision = "0001_restart_migrations"
|
||||
down_revision = None
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
from sqlalchemy.dialects import postgresql
|
||||
|
||||
|
||||
|
||||
@@ -10,9 +10,9 @@ Create Date: 2016-04-15 12:12:46.383782
|
||||
revision = "0002_add_content_char_count"
|
||||
down_revision = "0001_restart_migrations"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from sqlalchemy.sql import table, column
|
||||
from alembic import op
|
||||
from sqlalchemy.sql import column, table
|
||||
|
||||
|
||||
def upgrade():
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2016-04-19 13:01:54.519821
|
||||
revision = "0003_add_service_history"
|
||||
down_revision = "0002_add_content_char_count"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
from sqlalchemy.dialects import postgresql
|
||||
|
||||
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2016-04-20 13:59:01.132535
|
||||
revision = "0004_notification_stats_date"
|
||||
down_revision = "0003_add_service_history"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
|
||||
|
||||
def upgrade():
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2016-04-20 15:13:42.229197
|
||||
revision = "0005_add_provider_stats"
|
||||
down_revision = "0004_notification_stats_date"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
from sqlalchemy.dialects import postgresql
|
||||
|
||||
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2016-04-20 17:21:38.541766
|
||||
revision = "0006_api_keys_history"
|
||||
down_revision = "0005_add_provider_stats"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
from sqlalchemy.dialects import postgresql
|
||||
|
||||
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2016-04-22 09:51:55.615891
|
||||
revision = "0007_template_history"
|
||||
down_revision = "0006_api_keys_history"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
from sqlalchemy.dialects import postgresql
|
||||
|
||||
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2016-04-25 14:16:49.787229
|
||||
revision = "0008_archive_template"
|
||||
down_revision = "0007_template_history"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
from sqlalchemy.dialects import postgresql
|
||||
|
||||
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2016-04-26 14:54:56.852642
|
||||
revision = "0009_created_by_for_jobs"
|
||||
down_revision = "0008_archive_template"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
from sqlalchemy.dialects import postgresql
|
||||
|
||||
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2016-04-26 13:08:42.892813
|
||||
revision = "0010_events_table"
|
||||
down_revision = "0009_created_by_for_jobs"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
from sqlalchemy.dialects import postgresql
|
||||
|
||||
|
||||
|
||||
@@ -14,8 +14,8 @@ down_revision = "0010_events_table"
|
||||
|
||||
import uuid
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
from sqlalchemy.dialects import postgresql
|
||||
|
||||
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2016-05-05 09:18:26.926275
|
||||
revision = "0012_complete_provider_details"
|
||||
down_revision = "0011_ad_provider_details"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
from sqlalchemy.dialects import postgresql
|
||||
from sqlalchemy.dialects.postgresql import ENUM
|
||||
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2016-05-11 16:00:51.478012
|
||||
revision = "0014_add_template_version"
|
||||
down_revision = "0012_complete_provider_details"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
from sqlalchemy.dialects import postgresql
|
||||
|
||||
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2016-05-16 13:55:27.179748
|
||||
revision = "0015_fix_template_data"
|
||||
down_revision = "0014_add_template_version"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
from sqlalchemy.dialects import postgresql
|
||||
|
||||
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2016-05-17 09:59:49.032865
|
||||
revision = "0016_reply_to_email"
|
||||
down_revision = "0015_fix_template_data"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
|
||||
|
||||
def upgrade():
|
||||
|
||||
@@ -10,12 +10,8 @@ Create Date: 2016-05-17 11:23:36.881219
|
||||
revision = "0017_add_failure_types"
|
||||
down_revision = "0016_reply_to_email"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from sqlalchemy.dialects import postgresql
|
||||
|
||||
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2016-05-18 09:39:22.512042
|
||||
revision = "0018_remove_subject_uniqueness"
|
||||
down_revision = "0017_add_failure_types"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
|
||||
|
||||
def upgrade():
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2016-05-18 15:04:24.513071
|
||||
revision = "0019_add_job_row_number"
|
||||
down_revision = "0018_remove_subject_uniqueness"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
|
||||
|
||||
def upgrade():
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2016-05-20 15:15:03.850862
|
||||
revision = "0020_template_history_fix"
|
||||
down_revision = "0019_add_job_row_number"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
|
||||
|
||||
def upgrade():
|
||||
|
||||
@@ -12,8 +12,8 @@ from sqlalchemy import text
|
||||
revision = "0021_add_delivered_failed_counts"
|
||||
down_revision = "0020_template_history_fix"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
|
||||
|
||||
def upgrade():
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2016-05-25 15:47:32.568097
|
||||
revision = "0022_add_pending_status"
|
||||
down_revision = "0021_add_delivered_failed_counts"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
|
||||
|
||||
def upgrade():
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2016-05-31 11:11:45.979594
|
||||
revision = "0023_add_research_mode"
|
||||
down_revision = "0022_add_pending_status"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
|
||||
|
||||
def upgrade():
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2016-05-31 11:11:45.979594
|
||||
revision = "0024_add_research_mode_defaults"
|
||||
down_revision = "0023_add_research_mode"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
|
||||
|
||||
def upgrade():
|
||||
|
||||
@@ -6,6 +6,8 @@ Create Date: 2016-06-01 14:17:01.963181
|
||||
|
||||
"""
|
||||
|
||||
import uuid
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
from datetime import datetime
|
||||
|
||||
@@ -13,7 +15,6 @@ from alembic import op
|
||||
from sqlalchemy import text
|
||||
|
||||
from app.hashing import hashpw
|
||||
import uuid
|
||||
|
||||
revision = "0025_notify_service_data"
|
||||
down_revision = "0024_add_research_mode_defaults"
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2016-06-07 09:51:07.343334
|
||||
revision = "0026_rename_notify_service"
|
||||
down_revision = "0025_notify_service_data"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
|
||||
|
||||
def upgrade():
|
||||
|
||||
@@ -14,8 +14,8 @@ from sqlalchemy import text
|
||||
revision = "0028_fix_reg_template_history"
|
||||
down_revision = "0026_rename_notify_service"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
|
||||
service_id = "d6aa2c68-a2d9-4437-ab19-3ae8eb202553"
|
||||
user_id = "6af522d0-2915-4e52-83a3-3690455a5fe6"
|
||||
|
||||
@@ -12,8 +12,8 @@ from sqlalchemy import text
|
||||
revision = "0029_fix_email_from"
|
||||
down_revision = "0028_fix_reg_template_history"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
|
||||
service_id = "d6aa2c68-a2d9-4437-ab19-3ae8eb202553"
|
||||
|
||||
|
||||
@@ -13,8 +13,8 @@ from sqlalchemy.dialects import postgresql
|
||||
revision = "0030_service_id_not_null"
|
||||
down_revision = "0029_fix_email_from"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
|
||||
|
||||
def upgrade():
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2016-06-20 10:39:50.892847
|
||||
revision = "0031_store_personalisation"
|
||||
down_revision = "0030_service_id_not_null"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
|
||||
|
||||
def upgrade():
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2016-06-21 11:29:28.963615
|
||||
revision = "0032_notification_created_status"
|
||||
down_revision = "0031_store_personalisation"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
|
||||
|
||||
def upgrade():
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2016-06-24 12:02:10.915817
|
||||
revision = "0033_api_key_type"
|
||||
down_revision = "0032_notification_created_status"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
from sqlalchemy.dialects import postgresql
|
||||
|
||||
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2016-06-28 10:37:25.389020
|
||||
revision = "0034_pwd_changed_at_not_null"
|
||||
down_revision = "0033_api_key_type"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
|
||||
|
||||
def upgrade():
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2016-06-29 10:48:55.955317
|
||||
revision = "0035_notification_type"
|
||||
down_revision = "0034_pwd_changed_at_not_null"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
|
||||
|
||||
def upgrade():
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2016-07-01 16:01:16.892638
|
||||
revision = "0036_notif_key_type_not_null"
|
||||
down_revision = "0035_notification_type"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
|
||||
|
||||
def upgrade():
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2016-06-30 14:55:33.811696
|
||||
revision = "0037_service_sms_sender"
|
||||
down_revision = "0036_notif_key_type_not_null"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
|
||||
|
||||
def upgrade():
|
||||
|
||||
@@ -12,8 +12,8 @@ from sqlalchemy import text
|
||||
revision = "0039_fix_notifications"
|
||||
down_revision = "0038_test_api_key_type"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
|
||||
|
||||
def upgrade():
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2016-07-07 13:15:35.503107
|
||||
revision = "0042_notification_history"
|
||||
down_revision = "0039_fix_notifications"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
from sqlalchemy.dialects import postgresql
|
||||
|
||||
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2016-08-01 10:37:41.198070
|
||||
revision = "0043_notification_indexes"
|
||||
down_revision = "0042_notification_history"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
|
||||
|
||||
def upgrade():
|
||||
|
||||
@@ -10,13 +10,13 @@ Create Date: 2016-07-15 13:28:41.441009
|
||||
revision = "0044_jobs_to_notification_hist"
|
||||
down_revision = "0043_notification_indexes"
|
||||
|
||||
from alembic import op
|
||||
import datetime
|
||||
import uuid
|
||||
|
||||
from alembic import op
|
||||
from sqlalchemy.orm.session import Session
|
||||
|
||||
import uuid
|
||||
import datetime
|
||||
from app.models import Job, Template, NotificationHistory
|
||||
from app.models import Job, NotificationHistory, Template
|
||||
|
||||
|
||||
def upgrade():
|
||||
|
||||
@@ -7,13 +7,13 @@ Create Date: 2016-08-02 16:36:42.455838
|
||||
"""
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
from sqlalchemy import text, bindparam
|
||||
from sqlalchemy import bindparam, text
|
||||
|
||||
revision = "0045_billable_units"
|
||||
down_revision = "0044_jobs_to_notification_hist"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
from sqlalchemy.orm.session import Session
|
||||
|
||||
from app.models import Service
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2016-08-04 12:00:43.682610
|
||||
revision = "0046_organisations_and_branding"
|
||||
down_revision = "0045_billable_units"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
from sqlalchemy.dialects import postgresql
|
||||
|
||||
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2016-08-24 13:21:51.744526
|
||||
revision = "0048_job_scheduled_time"
|
||||
down_revision = "0046_organisations_and_branding"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
|
||||
|
||||
def upgrade():
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2016-08-24 13:21:51.744526
|
||||
revision = "0050_index_for_stats"
|
||||
down_revision = "0048_job_scheduled_time"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
|
||||
|
||||
def upgrade():
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2016-08-25 15:56:31.779399
|
||||
revision = "0052_drop_jobs_status"
|
||||
down_revision = "0051_set_job_status"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
from sqlalchemy.dialects import postgresql
|
||||
|
||||
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2016-09-01 14:34:06.839381
|
||||
revision = "0053_cancelled_job_status"
|
||||
down_revision = "0052_drop_jobs_status"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
from sqlalchemy.dialects import postgresql
|
||||
|
||||
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2016-08-25 15:56:31.779399
|
||||
revision = "0054_perform_drop_status_column"
|
||||
down_revision = "0053_cancelled_job_status"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
from sqlalchemy.dialects import postgresql
|
||||
|
||||
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2016-09-20 12:12:30.838095
|
||||
revision = "0055_service_whitelist"
|
||||
down_revision = "0054_perform_drop_status_column"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
from sqlalchemy.dialects import postgresql
|
||||
|
||||
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2016-10-04 09:43:42.321138
|
||||
revision = "0056_minor_updates"
|
||||
down_revision = "0055_service_whitelist"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
|
||||
|
||||
def upgrade():
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2016-10-25 17:37:27.660723
|
||||
revision = "0058_add_letters_flag"
|
||||
down_revision = "0056_minor_updates"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
|
||||
|
||||
def upgrade():
|
||||
|
||||
@@ -6,8 +6,8 @@ Create Date: 2016-11-07 16:13:18.961527
|
||||
|
||||
"""
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision = "0060_add_letter_template_type"
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2016-11-17 13:19:25.820617
|
||||
revision = "0061_add_client_reference"
|
||||
down_revision = "0060_add_letter_template_type"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
|
||||
|
||||
def upgrade():
|
||||
|
||||
@@ -13,8 +13,8 @@ Create Date: 2016-12-14 13:00:24.226990
|
||||
revision = "0062_provider_details_history"
|
||||
down_revision = "0061_add_client_reference"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
from sqlalchemy.dialects import postgresql
|
||||
|
||||
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2017-01-10 15:39:30.909308
|
||||
revision = "0063_templates_process_type"
|
||||
down_revision = "0062_provider_details_history"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
|
||||
|
||||
def upgrade():
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2017-01-16 11:08:00.520678
|
||||
revision = "0064_update_template_process"
|
||||
down_revision = "0063_templates_process_type"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
|
||||
|
||||
def upgrade():
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2017-02-17 11:48:40.669235
|
||||
revision = "0065_users_current_session_id"
|
||||
down_revision = "0064_update_template_process"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
from sqlalchemy.dialects import postgresql
|
||||
|
||||
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2017-02-28 11:23:40.299110
|
||||
revision = "0067_service_contact_block"
|
||||
down_revision = "0065_users_current_session_id"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
|
||||
|
||||
def upgrade():
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2017-03-06 17:19:28.492005
|
||||
revision = "0068_add_created_by_to_provider"
|
||||
down_revision = "0067_service_contact_block"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
from sqlalchemy.dialects import postgresql
|
||||
|
||||
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2017-03-10 16:15:22.153948
|
||||
revision = "0069_add_dvla_job_status"
|
||||
down_revision = "0068_add_created_by_to_provider"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
|
||||
|
||||
def upgrade():
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2017-03-10 16:15:22.153948
|
||||
revision = "0070_fix_notify_user_email"
|
||||
down_revision = "0069_add_dvla_job_status"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
|
||||
|
||||
def upgrade():
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2017-03-10 16:15:22.153948
|
||||
revision = "0071_add_job_error_state"
|
||||
down_revision = "0070_fix_notify_user_email"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
|
||||
|
||||
def upgrade():
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2017-04-19 15:25:45.155886
|
||||
revision = "0072_add_dvla_orgs"
|
||||
down_revision = "0071_add_job_error_state"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
|
||||
|
||||
def upgrade():
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2017-10-25 17:37:27.660723
|
||||
revision = "0073_add_international_sms_flag"
|
||||
down_revision = "0072_add_dvla_orgs"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
|
||||
|
||||
def upgrade():
|
||||
|
||||
@@ -14,8 +14,8 @@ from sqlalchemy import text
|
||||
revision = "0075_create_rates_table"
|
||||
down_revision = "0073_add_international_sms_flag"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
from sqlalchemy.dialects import postgresql
|
||||
|
||||
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2017-04-25 09:44:13.194164
|
||||
revision = "0076_add_intl_flag_to_provider"
|
||||
down_revision = "0075_create_rates_table"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
|
||||
|
||||
def upgrade():
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2017-04-25 11:34:43.229494
|
||||
revision = "0077_add_intl_notification"
|
||||
down_revision = "0076_add_intl_flag_to_provider"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
|
||||
|
||||
def upgrade():
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2017-04-24 16:55:20.731069
|
||||
revision = "0078_sent_notification_status"
|
||||
down_revision = "0077_add_intl_notification"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
|
||||
enum_name = "notify_status_type"
|
||||
tmp_name = "tmp_" + enum_name
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2017-05-02 14:50:04.070874
|
||||
revision = "0081_noti_status_as_enum"
|
||||
down_revision = "0078_sent_notification_status"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
|
||||
|
||||
def upgrade():
|
||||
|
||||
@@ -9,10 +9,9 @@ Create Date: 2017-05-10 16:06:04.070874
|
||||
# revision identifiers, used by Alembic.
|
||||
from datetime import datetime
|
||||
|
||||
from flask import current_app
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
from flask import current_app
|
||||
from sqlalchemy import text
|
||||
|
||||
revision = "0082_add_go_live_template"
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2017-05-12 11:29:32.664811
|
||||
revision = "0083_add_perm_types_and_svc_perm"
|
||||
down_revision = "0082_add_go_live_template"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
from sqlalchemy.dialects import postgresql
|
||||
|
||||
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2017-05-12 13:16:14.147368
|
||||
revision = "0084_add_job_stats"
|
||||
down_revision = "0083_add_perm_types_and_svc_perm"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
from sqlalchemy.dialects import postgresql
|
||||
|
||||
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2017-05-22 10:23:43.939050
|
||||
revision = "0085_update_incoming_to_inbound"
|
||||
down_revision = "0084_add_job_stats"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
from sqlalchemy.dialects import postgresql
|
||||
|
||||
|
||||
|
||||
@@ -6,8 +6,8 @@ Create Date: 2017-05-23 10:37:00.404087
|
||||
|
||||
"""
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
|
||||
revision = "0086_add_norm_to_notification"
|
||||
down_revision = "0085_update_incoming_to_inbound"
|
||||
|
||||
@@ -5,8 +5,8 @@ Revises: 0086_add_norm_to_notification
|
||||
Create Date: 2017-05-15 12:50:20.041950
|
||||
|
||||
"""
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
from sqlalchemy.dialects import postgresql
|
||||
|
||||
revision = "0087_scheduled_notifications"
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2017-05-22 11:28:53.471004
|
||||
revision = "0090_inbound_sms"
|
||||
down_revision = "0089_govuk_sms_sender"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
from sqlalchemy.dialects import postgresql
|
||||
|
||||
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2017-06-02 16:07:35.445423
|
||||
revision = "0092_add_inbound_provider"
|
||||
down_revision = "0090_inbound_sms"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
from sqlalchemy.dialects import postgresql
|
||||
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@ Revises: 0092_add_inbound_provider
|
||||
Create Date: 2017-06-06 14:37:30.051647
|
||||
|
||||
"""
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision = "0094_job_stats_update"
|
||||
|
||||
@@ -12,8 +12,8 @@ from sqlalchemy import text
|
||||
revision = "0095_migrate_existing_svc_perms"
|
||||
down_revision = "0094_job_stats_update"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
|
||||
migration_date = "2017-05-26 17:30:00.000000"
|
||||
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2017-06-08 15:46:49.637642
|
||||
revision = "0096_update_job_stats"
|
||||
down_revision = "0095_migrate_existing_svc_perms"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
from sqlalchemy.dialects import postgresql
|
||||
|
||||
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2017-06-02 16:50:11.698423
|
||||
revision = "0097_notnull_inbound_provider"
|
||||
down_revision = "0096_update_job_stats"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
|
||||
|
||||
def upgrade():
|
||||
|
||||
@@ -5,8 +5,8 @@ Revises: 0097_notnull_inbound_provider
|
||||
Create Date: 2017-06-13 15:02:33.609656
|
||||
|
||||
"""
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
from sqlalchemy.dialects import postgresql
|
||||
|
||||
revision = "0098_service_inbound_api"
|
||||
|
||||
@@ -12,8 +12,8 @@ from sqlalchemy import text
|
||||
revision = "0099_tfl_dar"
|
||||
down_revision = "0098_service_inbound_api"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
from sqlalchemy.dialects import postgresql
|
||||
|
||||
TFL_DAR_ID = "1d70f564-919b-4c68-8bdf-b8520d92516e"
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2017-06-13 10:53:25.032202
|
||||
revision = "0100_notification_created_by"
|
||||
down_revision = "0099_tfl_dar"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
from sqlalchemy.dialects import postgresql
|
||||
|
||||
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2017-06-27 15:37:28.878359
|
||||
revision = "db6d9d9f06bc"
|
||||
down_revision = "0101_een_logo"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
from sqlalchemy.dialects import postgresql
|
||||
|
||||
|
||||
|
||||
@@ -12,10 +12,10 @@ from sqlalchemy import text
|
||||
revision = "0103_add_historical_redact"
|
||||
down_revision = "db6d9d9f06bc"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from sqlalchemy.dialects import postgresql
|
||||
from alembic import op
|
||||
from flask import current_app
|
||||
from sqlalchemy.dialects import postgresql
|
||||
|
||||
|
||||
def upgrade():
|
||||
|
||||
@@ -10,10 +10,10 @@ Create Date: 2017-06-29 12:44:16.815039
|
||||
revision = "0105_opg_letter_org"
|
||||
down_revision = "0103_add_historical_redact"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from sqlalchemy.dialects import postgresql
|
||||
from alembic import op
|
||||
from flask import current_app
|
||||
from sqlalchemy.dialects import postgresql
|
||||
|
||||
|
||||
def upgrade():
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2017-07-10 14:25:58.494636
|
||||
revision = "0107_drop_template_stats"
|
||||
down_revision = "0106_null_noti_status"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
from sqlalchemy.dialects import postgresql
|
||||
|
||||
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2017-07-06 10:14:35.188404
|
||||
revision = "0108_change_logo_not_nullable"
|
||||
down_revision = "0107_drop_template_stats"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
from sqlalchemy.dialects import postgresql
|
||||
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@ Revises: 0108_change_logo_not_nullable
|
||||
Create Date: 2017-07-10 14:25:15.712055
|
||||
|
||||
"""
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
from sqlalchemy.dialects import postgresql
|
||||
|
||||
revision = "0109_rem_old_noti_status"
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2017-07-13 14:35:03.183659
|
||||
revision = "0110_monthly_billing"
|
||||
down_revision = "0109_rem_old_noti_status"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
from sqlalchemy.dialects import postgresql
|
||||
|
||||
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2017-07-12 13:35:45.636618
|
||||
revision = "0111_drop_old_service_flags"
|
||||
down_revision = "0110_monthly_billing"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
from sqlalchemy.dialects import postgresql
|
||||
|
||||
|
||||
|
||||
@@ -6,8 +6,9 @@ Create Date: 2017-07-12 13:35:45.636618
|
||||
|
||||
"""
|
||||
from datetime import datetime
|
||||
from alembic import op
|
||||
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
from sqlalchemy import text
|
||||
|
||||
from app.dao.date_util import get_month_start_and_end_date_in_utc
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2017-07-27 11:12:34.938086
|
||||
revision = "0113_job_created_by_nullable"
|
||||
down_revision = "0112_add_start_end_dates"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
from sqlalchemy.dialects import postgresql
|
||||
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@ Revises: 0113_job_created_by_nullable
|
||||
Create Date: 2017-07-27 13:36:37.304344
|
||||
|
||||
"""
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
from sqlalchemy.dialects import postgresql
|
||||
|
||||
revision = "0014_drop_monthly_billing_cols"
|
||||
|
||||
@@ -10,8 +10,8 @@ Create Date: 2017-08-10 17:30:01.507694
|
||||
revision = "0115_add_inbound_numbers"
|
||||
down_revision = "0014_drop_monthly_billing_cols"
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
from sqlalchemy.dialects import postgresql
|
||||
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user