47 lines
873 B
Python
47 lines
873 B
Python
"""stop updates of dod id
|
|
|
|
Revision ID: c222327c3963
|
|
Revises: 02d11579a581
|
|
Create Date: 2018-12-12 10:23:00.773973
|
|
|
|
"""
|
|
from alembic import op
|
|
import sqlalchemy as sa
|
|
|
|
|
|
# revision identifiers, used by Alembic.
|
|
revision = 'c222327c3963'
|
|
down_revision = '02d11579a581'
|
|
branch_labels = None
|
|
depends_on = None
|
|
|
|
|
|
def upgrade():
|
|
connection = op.get_bind()
|
|
connection.execute("""
|
|
CREATE OR REPLACE FUNCTION lock_dod_id()
|
|
RETURNS TRIGGER
|
|
AS $$
|
|
BEGIN
|
|
IF NEW.dod_id != OLD.dod_id THEN
|
|
RAISE EXCEPTION 'DOD ID cannot be updated';
|
|
END IF;
|
|
|
|
RETURN NEW;
|
|
END
|
|
$$ LANGUAGE plpgsql;
|
|
|
|
CREATE TRIGGER lock_dod_id
|
|
BEFORE UPDATE ON users
|
|
FOR EACH ROW
|
|
EXECUTE PROCEDURE lock_dod_id();
|
|
""")
|
|
|
|
|
|
def downgrade():
|
|
connection = op.get_bind()
|
|
connection.execute("""
|
|
DROP TRIGGER IF EXISTS lock_dod_id ON users;
|
|
DROP FUNCTION IF EXISTS lock_dod_id();
|
|
""")
|