fix: info pages review — deduplicate slug index, type reorder items
- Remove triple-redundant slug index: keep only unique=True on column (PostgreSQL creates unique index automatically), remove __table_args__ index and explicit create_index in migration - Type ReorderRequest.items with ReorderItem(id: int, sort_order: int) instead of raw dict — prevents unvalidated input causing 500 - Migration downgrade: just drop_table (unique constraint drops with it)
This commit is contained in:
@@ -22,7 +22,7 @@ def upgrade() -> None:
|
||||
op.create_table(
|
||||
'info_pages',
|
||||
sa.Column('id', sa.Integer(), primary_key=True, autoincrement=True),
|
||||
sa.Column('slug', sa.String(200), unique=True, nullable=False, index=True),
|
||||
sa.Column('slug', sa.String(200), unique=True, nullable=False),
|
||||
sa.Column('title', sa.dialects.postgresql.JSONB(), nullable=False, server_default='{}'),
|
||||
sa.Column('content', sa.dialects.postgresql.JSONB(), nullable=False, server_default='{}'),
|
||||
sa.Column('is_active', sa.Boolean(), nullable=False, server_default='true'),
|
||||
@@ -31,11 +31,9 @@ def upgrade() -> None:
|
||||
sa.Column('created_at', sa.DateTime(timezone=True), server_default=sa.func.now()),
|
||||
sa.Column('updated_at', sa.DateTime(timezone=True), server_default=sa.func.now()),
|
||||
)
|
||||
op.create_index('ix_info_pages_slug', 'info_pages', ['slug'], unique=True)
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
op.drop_index('ix_info_pages_slug', table_name='info_pages')
|
||||
op.drop_table('info_pages')
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user