139 lines
6.1 KiB
Python
139 lines
6.1 KiB
Python
"""Initial migration
|
|
|
|
Revision ID: 88d9df7768b2
|
|
Revises:
|
|
Create Date: 2024-10-12 15:40:52.735580
|
|
|
|
"""
|
|
from typing import Sequence, Union
|
|
|
|
from alembic import op
|
|
import sqlalchemy as sa
|
|
|
|
|
|
# revision identifiers, used by Alembic.
|
|
revision: str = '88d9df7768b2'
|
|
down_revision: Union[str, None] = None
|
|
branch_labels: Union[str, Sequence[str], None] = None
|
|
depends_on: Union[str, Sequence[str], None] = None
|
|
|
|
|
|
def upgrade() -> None:
|
|
# ### commands auto generated by Alembic - please adjust! ###
|
|
op.create_table('equipment',
|
|
sa.Column('id', sa.Integer(), autoincrement=True, nullable=False),
|
|
sa.Column('name', sa.String(), nullable=False),
|
|
sa.PrimaryKeyConstraint('id')
|
|
)
|
|
op.create_table('users',
|
|
sa.Column('id', sa.Integer(), autoincrement=True, nullable=False),
|
|
sa.Column('name', sa.String(), nullable=False),
|
|
sa.Column('company', sa.String(), nullable=True),
|
|
sa.Column('address', sa.String(), nullable=False),
|
|
sa.Column('latitude', sa.String(), nullable=True),
|
|
sa.Column('longitude', sa.String(), nullable=True),
|
|
sa.Column('phone', sa.String(), nullable=False),
|
|
sa.Column('privatePhone', sa.String(), nullable=True),
|
|
sa.Column('email', sa.String(), nullable=False),
|
|
sa.Column('cvr', sa.String(), nullable=True),
|
|
sa.Column('password', sa.String(), nullable=False),
|
|
sa.Column('username', sa.String(), nullable=False),
|
|
sa.Column('role', sa.Enum('PRIVATE', 'BUSINESS', name='userrole'), nullable=True),
|
|
sa.Column('updatedAt', sa.DateTime(timezone=True), server_default=sa.text('now()'), nullable=True),
|
|
sa.Column('createdAt', sa.DateTime(timezone=True), server_default=sa.text('now()'), nullable=True),
|
|
sa.PrimaryKeyConstraint('id'),
|
|
sa.UniqueConstraint('email'),
|
|
sa.UniqueConstraint('username')
|
|
)
|
|
op.create_table('vehicles',
|
|
sa.Column('id', sa.Integer(), autoincrement=True, nullable=False),
|
|
sa.Column('brand', sa.String(), nullable=False),
|
|
sa.Column('model', sa.String(), nullable=False),
|
|
sa.Column('variant', sa.String(), nullable=True),
|
|
sa.Column('year', sa.Integer(), nullable=False),
|
|
sa.Column('kilometers', sa.Integer(), nullable=False),
|
|
sa.Column('condition', sa.String(), nullable=False),
|
|
sa.Column('location', sa.String(), nullable=False),
|
|
sa.Column('latitude', sa.String(), nullable=False),
|
|
sa.Column('longitude', sa.String(), nullable=False),
|
|
sa.Column('gasType', sa.String(), nullable=False),
|
|
sa.Column('images', sa.Text(), nullable=False),
|
|
sa.Column('description', sa.String(), nullable=False),
|
|
sa.Column('service', sa.String(), nullable=False),
|
|
sa.Column('inspectedAt', sa.DateTime(timezone=True), nullable=True),
|
|
sa.Column('updatedAt', sa.DateTime(timezone=True), server_default=sa.text('now()'), nullable=True),
|
|
sa.Column('createdAt', sa.DateTime(timezone=True), server_default=sa.text('now()'), nullable=True),
|
|
sa.PrimaryKeyConstraint('id')
|
|
)
|
|
op.create_table('verification_tokens',
|
|
sa.Column('identifier', sa.String(), nullable=False),
|
|
sa.Column('token', sa.String(), nullable=False),
|
|
sa.Column('expires', sa.DateTime(), nullable=False),
|
|
sa.PrimaryKeyConstraint('identifier'),
|
|
sa.UniqueConstraint('token')
|
|
)
|
|
op.create_table('accounts',
|
|
sa.Column('id', sa.Integer(), autoincrement=True, nullable=False),
|
|
sa.Column('userId', sa.Integer(), nullable=True),
|
|
sa.Column('type', sa.String(), nullable=False),
|
|
sa.Column('provider', sa.String(), nullable=False),
|
|
sa.Column('providerAccountId', sa.String(), nullable=False),
|
|
sa.Column('refresh_token', sa.String(), nullable=True),
|
|
sa.Column('access_token', sa.String(), nullable=True),
|
|
sa.Column('expires_at', sa.Integer(), nullable=True),
|
|
sa.ForeignKeyConstraint(['userId'], ['users.id'], ),
|
|
sa.PrimaryKeyConstraint('id')
|
|
)
|
|
op.create_table('auctions',
|
|
sa.Column('id', sa.Integer(), autoincrement=True, nullable=False),
|
|
sa.Column('vehicleId', sa.Integer(), nullable=True),
|
|
sa.Column('userId', sa.Integer(), nullable=True),
|
|
sa.Column('askingPrice', sa.Float(), nullable=False),
|
|
sa.Column('description', sa.String(), nullable=True),
|
|
sa.Column('updatedAt', sa.DateTime(timezone=True), server_default=sa.text('now()'), nullable=True),
|
|
sa.Column('createdAt', sa.DateTime(timezone=True), server_default=sa.text('now()'), nullable=True),
|
|
sa.ForeignKeyConstraint(['userId'], ['users.id'], ),
|
|
sa.ForeignKeyConstraint(['vehicleId'], ['vehicles.id'], ),
|
|
sa.PrimaryKeyConstraint('id')
|
|
)
|
|
op.create_table('sessions',
|
|
sa.Column('id', sa.Integer(), autoincrement=True, nullable=False),
|
|
sa.Column('sessionToken', sa.String(), nullable=False),
|
|
sa.Column('userId', sa.Integer(), nullable=True),
|
|
sa.Column('expires', sa.DateTime(), nullable=False),
|
|
sa.ForeignKeyConstraint(['userId'], ['users.id'], ),
|
|
sa.PrimaryKeyConstraint('id'),
|
|
sa.UniqueConstraint('sessionToken')
|
|
)
|
|
op.create_table('vehicle_equipment',
|
|
sa.Column('vehicle_id', sa.Integer(), nullable=False),
|
|
sa.Column('equipment_id', sa.Integer(), nullable=False),
|
|
sa.ForeignKeyConstraint(['equipment_id'], ['equipment.id'], ),
|
|
sa.ForeignKeyConstraint(['vehicle_id'], ['vehicles.id'], ),
|
|
sa.PrimaryKeyConstraint('vehicle_id', 'equipment_id')
|
|
)
|
|
op.create_table('bids',
|
|
sa.Column('id', sa.Integer(), autoincrement=True, nullable=False),
|
|
sa.Column('auctionId', sa.Integer(), nullable=True),
|
|
sa.Column('bid', sa.Float(), nullable=False),
|
|
sa.Column('updatedAt', sa.DateTime(timezone=True), server_default=sa.text('now()'), nullable=True),
|
|
sa.Column('createdAt', sa.DateTime(timezone=True), server_default=sa.text('now()'), nullable=True),
|
|
sa.ForeignKeyConstraint(['auctionId'], ['auctions.id'], ),
|
|
sa.PrimaryKeyConstraint('id')
|
|
)
|
|
# ### end Alembic commands ###
|
|
|
|
|
|
def downgrade() -> None:
|
|
# ### commands auto generated by Alembic - please adjust! ###
|
|
op.drop_table('bids')
|
|
op.drop_table('vehicle_equipment')
|
|
op.drop_table('sessions')
|
|
op.drop_table('auctions')
|
|
op.drop_table('accounts')
|
|
op.drop_table('verification_tokens')
|
|
op.drop_table('vehicles')
|
|
op.drop_table('users')
|
|
op.drop_table('equipment')
|
|
# ### end Alembic commands ###
|