"""initial schema Revision ID: b552ac5a278a Revises: Create Date: 2026-01-25 09:13:19.361950 """ from typing import Sequence, Union from alembic import op import sqlalchemy as sa # revision identifiers, used by Alembic. revision: str = 'b552ac5a278a' down_revision: Union[str, Sequence[str], None] = None branch_labels: Union[str, Sequence[str], None] = None depends_on: Union[str, Sequence[str], None] = None def upgrade() -> None: """Upgrade schema.""" # ### commands auto generated by Alembic - please adjust! ### op.create_table('owners', sa.Column('id', sa.Integer(), nullable=False), sa.Column('name', sa.String(length=100), nullable=False), sa.Column('contact', sa.String(length=255), nullable=True), sa.PrimaryKeyConstraint('id'), sa.UniqueConstraint('name') ) op.create_table('users', sa.Column('id', sa.Integer(), nullable=False), sa.Column('username', sa.String(length=50), nullable=False), sa.Column('password_hash', sa.String(length=255), nullable=False), sa.Column('is_active', sa.Boolean(), nullable=False), sa.PrimaryKeyConstraint('id') ) op.create_index(op.f('ix_users_id'), 'users', ['id'], unique=False) op.create_index(op.f('ix_users_username'), 'users', ['username'], unique=True) op.create_table('servers', sa.Column('id', sa.Integer(), nullable=False), sa.Column('hostname', sa.String(length=100), nullable=False), sa.Column('description', sa.Text(), nullable=True), sa.Column('owner_id', sa.Integer(), nullable=True), sa.ForeignKeyConstraint(['owner_id'], ['owners.id'], ), sa.PrimaryKeyConstraint('id') ) op.create_index(op.f('ix_servers_hostname'), 'servers', ['hostname'], unique=True) op.create_table('work_entries', sa.Column('id', sa.Integer(), nullable=False), sa.Column('title', sa.String(length=200), nullable=False), sa.Column('description', sa.Text(), nullable=True), sa.Column('created_at', sa.DateTime(), nullable=False), sa.Column('duration_minutes', sa.Integer(), nullable=True), sa.Column('created_by_user_id', sa.Integer(), nullable=False), sa.ForeignKeyConstraint(['created_by_user_id'], ['users.id'], ), sa.PrimaryKeyConstraint('id') ) op.create_table('work_entry_servers', sa.Column('work_entry_id', sa.Integer(), nullable=False), sa.Column('server_id', sa.Integer(), nullable=False), sa.ForeignKeyConstraint(['server_id'], ['servers.id'], ), sa.ForeignKeyConstraint(['work_entry_id'], ['work_entries.id'], ), sa.PrimaryKeyConstraint('work_entry_id', 'server_id') ) # ### end Alembic commands ### def downgrade() -> None: """Downgrade schema.""" # ### commands auto generated by Alembic - please adjust! ### op.drop_table('work_entry_servers') op.drop_table('work_entries') op.drop_index(op.f('ix_servers_hostname'), table_name='servers') op.drop_table('servers') op.drop_index(op.f('ix_users_username'), table_name='users') op.drop_index(op.f('ix_users_id'), table_name='users') op.drop_table('users') op.drop_table('owners') # ### end Alembic commands ###