45 lines
1.3 KiB
Python
45 lines
1.3 KiB
Python
"""fix updated_at trigger
|
|
|
|
Revision ID: fix_updated_at_trigger
|
|
Revises: add_status_details
|
|
Create Date: 2024-03-19 12:00:00.000000
|
|
|
|
"""
|
|
from alembic import op
|
|
import sqlalchemy as sa
|
|
from sqlalchemy import text
|
|
|
|
# revision identifiers, used by Alembic.
|
|
revision = 'fix_updated_at_trigger'
|
|
down_revision = 'add_status_details'
|
|
branch_labels = None
|
|
depends_on = None
|
|
|
|
def upgrade():
|
|
# Drop the existing trigger if it exists
|
|
op.execute("DROP TRIGGER IF EXISTS update_instances_updated_at ON instances")
|
|
op.execute("DROP FUNCTION IF EXISTS update_updated_at_column()")
|
|
|
|
# Create the trigger function
|
|
op.execute("""
|
|
CREATE OR REPLACE FUNCTION update_updated_at_column()
|
|
RETURNS TRIGGER AS $$
|
|
BEGIN
|
|
NEW.updated_at = CURRENT_TIMESTAMP;
|
|
RETURN NEW;
|
|
END;
|
|
$$ language 'plpgsql';
|
|
""")
|
|
|
|
# Create the trigger
|
|
op.execute("""
|
|
CREATE TRIGGER update_instances_updated_at
|
|
BEFORE UPDATE ON instances
|
|
FOR EACH ROW
|
|
EXECUTE FUNCTION update_updated_at_column();
|
|
""")
|
|
|
|
def downgrade():
|
|
# Drop the trigger and function
|
|
op.execute("DROP TRIGGER IF EXISTS update_instances_updated_at ON instances")
|
|
op.execute("DROP FUNCTION IF EXISTS update_updated_at_column()") |