mirror of
https://github.com/GSA/notifications-api.git
synced 2025-12-24 17:31:34 -05:00
we had an issue where the notification postage constraint command ran into a deadlock, after trying to acquire two exclusive access locks on large frequently modified/read tables. To avoid this happening, we've had to split the upgrade script into three - one script to apply the not-valid constraint to notifications table, one for notification_history, and a third to validate the two constraints. Note: The first two scripts acquire exclusive access locks, but the third only needs a row by row lock. since this involves changing the exsiting alembic upgrades, if you've upgraded your db you'll need to run the following three commands to revert your database to a previous good state. ``` alter table notifications drop constraint chk_notifications_postage_null; alter table notification_history drop constraint chk_notification_history_postage_null; update alembic_version set version_num = '0229_new_letter_rates'; ```
Generic single-database configuration.
flask db migrate to generate migration script.
flask db upgrade to upgrade db with script.
flask db downgrade to rollback db changes.
flask db current to show current script.