From d75746e029c3f618fe87a8229c5351407323d35d Mon Sep 17 00:00:00 2001 From: YueGuobin Date: Thu, 11 Jun 2026 23:13:50 +0800 Subject: [PATCH] fix: Add missing updated_at column to api_keys table BaseTable base class includes updated_at, but the initial migration didn't create the column. Added fixup migration. --- .../versions/f0b0de2a9_add_api_keys_table.py | 1 + .../f0b0de2a9b_add_updated_at_to_api_keys.py | 23 +++++++++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 gns3server/db_migrations/versions/f0b0de2a9b_add_updated_at_to_api_keys.py diff --git a/gns3server/db_migrations/versions/f0b0de2a9_add_api_keys_table.py b/gns3server/db_migrations/versions/f0b0de2a9_add_api_keys_table.py index 5c438678e..9c8b4fdb6 100644 --- a/gns3server/db_migrations/versions/f0b0de2a9_add_api_keys_table.py +++ b/gns3server/db_migrations/versions/f0b0de2a9_add_api_keys_table.py @@ -27,6 +27,7 @@ def upgrade() -> None: sa.Column('key_prefix', sa.String(8), nullable=False), sa.Column('last_used_at', sa.DateTime(), nullable=True), sa.Column('created_at', sa.DateTime(), server_default=sa.func.current_timestamp(), nullable=False), + sa.Column('updated_at', sa.DateTime(), server_default=sa.func.current_timestamp(), nullable=False), sa.Column('revoked', sa.Boolean(), default=False, nullable=False), sa.ForeignKeyConstraint(['user_id'], ['users.user_id'], ondelete='CASCADE'), sa.PrimaryKeyConstraint('api_key_id'), diff --git a/gns3server/db_migrations/versions/f0b0de2a9b_add_updated_at_to_api_keys.py b/gns3server/db_migrations/versions/f0b0de2a9b_add_updated_at_to_api_keys.py new file mode 100644 index 000000000..159ac910d --- /dev/null +++ b/gns3server/db_migrations/versions/f0b0de2a9b_add_updated_at_to_api_keys.py @@ -0,0 +1,23 @@ +"""add updated_at column to api_keys table + +Revision ID: f0b0de2a9b +Revises: f0b0de2a9 +Create Date: 2026-06-11 23:15:00.000000 + +""" +from alembic import op +import sqlalchemy as sa + +# revision identifiers, used by Alembic. +revision = 'f0b0de2a9b' +down_revision = 'f0b0de2a9' +branch_labels = None +depends_on = None + + +def upgrade() -> None: + op.add_column('api_keys', sa.Column('updated_at', sa.DateTime(), server_default=sa.func.current_timestamp(), nullable=False)) + + +def downgrade() -> None: + op.drop_column('api_keys', 'updated_at')