"""Initial migration Revision ID: 75e81e4ab7b6 Revises: Create Date: 2026-03-14 22:51:20.059755 """ from alembic import op import sqlalchemy as sa # revision identifiers, used by Alembic. revision = "75e81e4ab7b6" down_revision = None branch_labels = None depends_on = None def upgrade(): # ### commands auto generated by Alembic - please adjust! ### op.create_table( "author", sa.Column("id", sa.Integer(), nullable=False), sa.Column("name", sa.String(length=200), nullable=False), sa.PrimaryKeyConstraint("id"), ) op.create_table( "genre", sa.Column("id", sa.Integer(), nullable=False), sa.Column("name", sa.String(length=100), nullable=False), sa.PrimaryKeyConstraint("id"), ) op.create_table( "user", sa.Column("id", sa.Integer(), nullable=False), sa.Column("username", sa.String(), nullable=False), sa.Column("saved_searches", sa.JSON(), nullable=False), sa.PrimaryKeyConstraint("id"), ) op.create_table( "book", sa.Column("id", sa.Integer(), nullable=False), sa.Column("title", sa.String(length=500), nullable=False), sa.Column("description", sa.String(), nullable=False), sa.Column("first_published", sa.Integer(), nullable=True), sa.Column("edition", sa.String(length=200), nullable=False), sa.Column("publisher", sa.String(length=200), nullable=False), sa.Column("isbn", sa.String(length=20), nullable=False), sa.Column("notes", sa.String(), nullable=False), sa.Column("added_date", sa.DateTime(), nullable=False), sa.Column("bought_date", sa.Date(), nullable=True), sa.Column("location_place", sa.String(length=100), nullable=False), sa.Column("location_bookshelf", sa.String(length=100), nullable=False), sa.Column("location_shelf", sa.Integer(), nullable=True), sa.Column("loaned_to", sa.String(length=200), nullable=False), sa.Column("loaned_date", sa.Date(), nullable=True), sa.Column("owner_id", sa.Integer(), nullable=True), sa.ForeignKeyConstraint( ["owner_id"], ["user.id"], ), sa.PrimaryKeyConstraint("id"), ) op.create_table( "book_author", sa.Column("book_id", sa.Integer(), nullable=False), sa.Column("author_id", sa.Integer(), nullable=False), sa.ForeignKeyConstraint( ["author_id"], ["author.id"], ), sa.ForeignKeyConstraint( ["book_id"], ["book.id"], ), sa.PrimaryKeyConstraint("book_id", "author_id"), ) op.create_table( "book_genre", sa.Column("book_id", sa.Integer(), nullable=False), sa.Column("genre_id", sa.Integer(), nullable=False), sa.ForeignKeyConstraint( ["book_id"], ["book.id"], ), sa.ForeignKeyConstraint( ["genre_id"], ["genre.id"], ), sa.PrimaryKeyConstraint("book_id", "genre_id"), ) op.create_table( "reading", sa.Column("id", sa.Integer(), nullable=False), sa.Column("start_date", sa.Date(), nullable=False), sa.Column("end_date", sa.Date(), nullable=True), sa.Column("finished", sa.Boolean(), nullable=False), sa.Column("dropped", sa.Boolean(), nullable=False), sa.Column("rating", sa.Integer(), nullable=True), sa.Column("comments", sa.String(), nullable=False), sa.Column("user_id", sa.Integer(), nullable=False), sa.Column("book_id", sa.Integer(), nullable=False), sa.ForeignKeyConstraint( ["book_id"], ["book.id"], ), sa.ForeignKeyConstraint( ["user_id"], ["user.id"], ), sa.PrimaryKeyConstraint("id"), ) op.create_table( "wishlist", sa.Column("id", sa.Integer(), nullable=False), sa.Column("wishlisted_date", sa.Date(), nullable=False), sa.Column("user_id", sa.Integer(), nullable=False), sa.Column("book_id", sa.Integer(), nullable=False), sa.ForeignKeyConstraint( ["book_id"], ["book.id"], ), sa.ForeignKeyConstraint( ["user_id"], ["user.id"], ), sa.PrimaryKeyConstraint("id"), ) # ### end Alembic commands ### def downgrade(): # ### commands auto generated by Alembic - please adjust! ### op.drop_table("wishlist") op.drop_table("reading") op.drop_table("book_genre") op.drop_table("book_author") op.drop_table("book") op.drop_table("user") op.drop_table("genre") op.drop_table("author") # ### end Alembic commands ###