From 76a267b8969adecc80fe270226b43195b42d046c Mon Sep 17 00:00:00 2001 From: Rebecca Law Date: Thu, 11 May 2017 15:40:56 +0100 Subject: [PATCH 1/3] Script to update international flag 10,000 rows at a time. --- migrations/versions/0083_set_international.py | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 migrations/versions/0083_set_international.py diff --git a/migrations/versions/0083_set_international.py b/migrations/versions/0083_set_international.py new file mode 100644 index 000000000..8251901eb --- /dev/null +++ b/migrations/versions/0083_set_international.py @@ -0,0 +1,45 @@ +"""empty message + +Revision ID: 0083_set_international +Revises: 0082_add_go_live_template +Create Date: 2017-05-05 15:26:34.621670 + +""" +from datetime import datetime +from alembic import op + +# revision identifiers, used by Alembic. +revision = '0083_set_international' +down_revision = '0082_add_go_live_template' + + +def upgrade(): + conn = op.get_bind() + start = datetime.utcnow() + notification_history = "select id from notification_history where international is null limit 10000" + + results = conn.execute(notification_history) + res = results.fetchall() + + while len(res) > 0: + conn.execute("update notification_history set international = False where id in ({})".format( + notification_history)) + results = conn.execute(notification_history) + res = results.fetchall() + + notifications = "select id from notifications where international is null limit 10000" + results2 = conn.execute(notifications) + res2 = results2.fetchall() + while len(res2) > 0: + conn.execute("update notifications set international = False where id in ({})".format(notifications)) + + results2 = conn.execute(notifications) + res2 = results2.fetchall() + + end = datetime.utcnow() + print("Started at: {} ended at: {}".format(start, end)) + + +def downgrade(): + # There is no way to downgrade this update. + pass From a75db813346ce64f9974b5fb3259b156a845299e Mon Sep 17 00:00:00 2001 From: Rebecca Law Date: Thu, 18 May 2017 13:12:05 +0100 Subject: [PATCH 2/3] Fix name condflicts with migration script --- ..._set_international.py => 0085_set_international.py} | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) rename migrations/versions/{0083_set_international.py => 0085_set_international.py} (83%) diff --git a/migrations/versions/0083_set_international.py b/migrations/versions/0085_set_international.py similarity index 83% rename from migrations/versions/0083_set_international.py rename to migrations/versions/0085_set_international.py index 8251901eb..1fe1818ad 100644 --- a/migrations/versions/0083_set_international.py +++ b/migrations/versions/0085_set_international.py @@ -1,7 +1,7 @@ """empty message -Revision ID: 0083_set_international -Revises: 0082_add_go_live_template +Revision ID: 0085_set_international +Revises: 0084_add_job_stats Create Date: 2017-05-05 15:26:34.621670 """ @@ -9,8 +9,8 @@ from datetime import datetime from alembic import op # revision identifiers, used by Alembic. -revision = '0083_set_international' -down_revision = '0082_add_go_live_template' +revision = '0085_set_international' +down_revision = '0084_add_job_stats' def upgrade(): @@ -37,7 +37,7 @@ def upgrade(): res2 = results2.fetchall() end = datetime.utcnow() - print("Started at: {} ended at: {}".format(start, end)) + print("Started at: {} ended at: {}, taking {}".format(start, end, end-start)) def downgrade(): From 097510b029dc616077b067e753a1494427d682ba Mon Sep 17 00:00:00 2001 From: Rebecca Law Date: Thu, 18 May 2017 14:28:49 +0100 Subject: [PATCH 3/3] Testing the update script --- migrations/versions/0085_set_international.py | 1 + 1 file changed, 1 insertion(+) diff --git a/migrations/versions/0085_set_international.py b/migrations/versions/0085_set_international.py index 1fe1818ad..2c2bbfe9a 100644 --- a/migrations/versions/0085_set_international.py +++ b/migrations/versions/0085_set_international.py @@ -13,6 +13,7 @@ revision = '0085_set_international' down_revision = '0084_add_job_stats' + def upgrade(): conn = op.get_bind() start = datetime.utcnow()