"""Initial schema Revision ID: 001 Revises: Create Date: 2023-11-27 """ from typing import Sequence, Union from alembic import op import sqlalchemy as sa # revision identifiers, used by Alembic. revision: str = '001' 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('actor', sa.Column('id', sa.Integer(), nullable=False), sa.Column('name', sa.String(length=255), nullable=False), sa.Column('birth_date', sa.Date(), nullable=True), sa.Column('bio', sa.Text(), nullable=True), sa.Column('photo_path', sa.String(length=255), nullable=True), sa.PrimaryKeyConstraint('id') ) op.create_index(op.f('ix_actor_id'), 'actor', ['id'], unique=False) op.create_index(op.f('ix_actor_name'), 'actor', ['name'], unique=False) op.create_table('director', sa.Column('id', sa.Integer(), nullable=False), sa.Column('name', sa.String(length=255), nullable=False), sa.Column('birth_date', sa.Date(), nullable=True), sa.Column('bio', sa.Text(), nullable=True), sa.Column('photo_path', sa.String(length=255), nullable=True), sa.PrimaryKeyConstraint('id') ) op.create_index(op.f('ix_director_id'), 'director', ['id'], unique=False) op.create_index(op.f('ix_director_name'), 'director', ['name'], unique=False) op.create_table('genre', sa.Column('id', sa.Integer(), nullable=False), sa.Column('name', sa.String(length=50), nullable=False), sa.PrimaryKeyConstraint('id') ) op.create_index(op.f('ix_genre_id'), 'genre', ['id'], unique=False) op.create_index(op.f('ix_genre_name'), 'genre', ['name'], unique=True) op.create_table('movie', sa.Column('id', sa.Integer(), nullable=False), sa.Column('title', sa.String(length=255), nullable=False), sa.Column('release_date', sa.Date(), nullable=True), sa.Column('overview', sa.Text(), nullable=True), sa.Column('poster_path', sa.String(length=255), nullable=True), sa.Column('runtime', sa.Integer(), nullable=True), sa.Column('rating', sa.Float(), nullable=True), sa.Column('director_id', sa.Integer(), nullable=True), sa.ForeignKeyConstraint(['director_id'], ['director.id'], ), sa.PrimaryKeyConstraint('id') ) op.create_index(op.f('ix_movie_id'), 'movie', ['id'], unique=False) op.create_index(op.f('ix_movie_title'), 'movie', ['title'], unique=False) op.create_table('movieactor', sa.Column('id', sa.Integer(), nullable=False), sa.Column('movie_id', sa.Integer(), nullable=False), sa.Column('actor_id', sa.Integer(), nullable=False), sa.Column('character_name', sa.String(length=255), nullable=True), sa.ForeignKeyConstraint(['actor_id'], ['actor.id'], ), sa.ForeignKeyConstraint(['movie_id'], ['movie.id'], ), sa.PrimaryKeyConstraint('id') ) op.create_index(op.f('ix_movieactor_id'), 'movieactor', ['id'], unique=False) op.create_table('moviegenre', sa.Column('id', sa.Integer(), nullable=False), sa.Column('movie_id', sa.Integer(), nullable=False), sa.Column('genre_id', sa.Integer(), nullable=False), sa.ForeignKeyConstraint(['genre_id'], ['genre.id'], ), sa.ForeignKeyConstraint(['movie_id'], ['movie.id'], ), sa.PrimaryKeyConstraint('id') ) op.create_index(op.f('ix_moviegenre_id'), 'moviegenre', ['id'], unique=False) # ### end Alembic commands ### def downgrade() -> None: # ### commands auto generated by Alembic - please adjust! ### op.drop_index(op.f('ix_moviegenre_id'), table_name='moviegenre') op.drop_table('moviegenre') op.drop_index(op.f('ix_movieactor_id'), table_name='movieactor') op.drop_table('movieactor') op.drop_index(op.f('ix_movie_title'), table_name='movie') op.drop_index(op.f('ix_movie_id'), table_name='movie') op.drop_table('movie') op.drop_index(op.f('ix_genre_name'), table_name='genre') op.drop_index(op.f('ix_genre_id'), table_name='genre') op.drop_table('genre') op.drop_index(op.f('ix_director_name'), table_name='director') op.drop_index(op.f('ix_director_id'), table_name='director') op.drop_table('director') op.drop_index(op.f('ix_actor_name'), table_name='actor') op.drop_index(op.f('ix_actor_id'), table_name='actor') op.drop_table('actor') # ### end Alembic commands ###