diff --git a/migrations/env.py b/migrations/env.py index 40adb92..e42652b 100644 --- a/migrations/env.py +++ b/migrations/env.py @@ -1,3 +1,5 @@ +"""Alembic environment file for SQLAlchemy.""" + import asyncio from logging.config import fileConfig @@ -7,7 +9,7 @@ from sqlalchemy.engine import Connection from sqlalchemy.ext.asyncio import async_engine_from_config from sqlmodel import SQLModel -from src.digimarks.models import Bookmark, PublicTag, User +from src.digimarks.models import Bookmark, PublicTag, User # noqa # this is the Alembic Config object, which provides # access to the values within the .ini file in use. @@ -56,6 +58,7 @@ def run_migrations_offline() -> None: def do_run_migrations(connection: Connection) -> None: + """Run the migrations.""" context.configure( connection=connection, target_metadata=target_metadata, diff --git a/migrations/versions/115bcd2e1a38_initial_migration.py b/migrations/versions/115bcd2e1a38_initial_migration.py index 61f43b8..173c3de 100644 --- a/migrations/versions/115bcd2e1a38_initial_migration.py +++ b/migrations/versions/115bcd2e1a38_initial_migration.py @@ -1,15 +1,14 @@ -"""Initial migration +"""Initial migration. Revision ID: 115bcd2e1a38 -Revises: +Revises: Create Date: 2025-09-12 16:06:16.479075 - """ + from typing import Sequence, Union -from alembic import op import sqlalchemy as sa - +from alembic import op # revision identifiers, used by Alembic. revision: str = '115bcd2e1a38' @@ -21,38 +20,41 @@ depends_on: Union[str, Sequence[str], None] = None def upgrade() -> None: """Upgrade schema.""" # ### commands auto generated by Alembic - please adjust! ### - op.create_table('bookmark', - sa.Column('id', sa.Integer(), nullable=False), - sa.Column('userkey', sa.String(length=255), nullable=False), - sa.Column('title', sa.String(length=255), nullable=False), - sa.Column('url', sa.String(length=255), nullable=False), - sa.Column('created_date', sa.DateTime(), nullable=False), - sa.Column('url_hash', sa.String(length=255), nullable=False), - sa.Column('tags', sa.String(length=255), nullable=False), - sa.Column('http_status', sa.Integer(), nullable=False), - sa.Column('modified_date', sa.DateTime(), nullable=True), - sa.Column('favicon', sa.String(length=255), nullable=True), - sa.Column('starred', sa.Boolean(), server_default=sa.text('0'), nullable=True), - sa.Column('deleted_date', sa.DateTime(), server_default=sa.text('(null)'), nullable=True), - sa.Column('status', sa.Integer(), server_default=sa.text('0'), nullable=True), - sa.Column('note', sa.Text(), server_default=sa.text('(null)'), nullable=True), - sa.PrimaryKeyConstraint('id') + op.create_table( + 'bookmark', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('userkey', sa.String(length=255), nullable=False), + sa.Column('title', sa.String(length=255), nullable=False), + sa.Column('url', sa.String(length=255), nullable=False), + sa.Column('created_date', sa.DateTime(), nullable=False), + sa.Column('url_hash', sa.String(length=255), nullable=False), + sa.Column('tags', sa.String(length=255), nullable=False), + sa.Column('http_status', sa.Integer(), nullable=False), + sa.Column('modified_date', sa.DateTime(), nullable=True), + sa.Column('favicon', sa.String(length=255), nullable=True), + sa.Column('starred', sa.Boolean(), server_default=sa.text('0'), nullable=True), + sa.Column('deleted_date', sa.DateTime(), server_default=sa.text('(null)'), nullable=True), + sa.Column('status', sa.Integer(), server_default=sa.text('0'), nullable=True), + sa.Column('note', sa.Text(), server_default=sa.text('(null)'), nullable=True), + sa.PrimaryKeyConstraint('id'), ) - op.create_table('publictag', - sa.Column('id', sa.Integer(), nullable=False), - sa.Column('tagkey', sa.String(length=255), nullable=False), - sa.Column('userkey', sa.String(length=255), nullable=False), - sa.Column('tag', sa.String(length=255), nullable=False), - sa.Column('created_date', sa.DateTime(), server_default=sa.text('(null)'), nullable=True), - sa.PrimaryKeyConstraint('id') + op.create_table( + 'publictag', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('tagkey', sa.String(length=255), nullable=False), + sa.Column('userkey', sa.String(length=255), nullable=False), + sa.Column('tag', sa.String(length=255), nullable=False), + sa.Column('created_date', sa.DateTime(), server_default=sa.text('(null)'), nullable=True), + sa.PrimaryKeyConstraint('id'), ) - op.create_table('user', - sa.Column('id', sa.Integer(), nullable=False), - sa.Column('username', sa.String(length=255), nullable=False), - sa.Column('key', sa.String(length=255), nullable=False), - sa.Column('created_date', sa.DateTime(), nullable=False), - sa.Column('theme', sa.String(length=20), server_default=sa.text("'green'"), nullable=True), - sa.PrimaryKeyConstraint('id') + op.create_table( + 'user', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('username', sa.String(length=255), nullable=False), + sa.Column('key', sa.String(length=255), nullable=False), + sa.Column('created_date', sa.DateTime(), nullable=False), + sa.Column('theme', sa.String(length=20), server_default=sa.text("'green'"), nullable=True), + sa.PrimaryKeyConstraint('id'), ) # ### end Alembic commands ### diff --git a/migrations/versions/a8d8e45f60a1_migrate_to_sqlmodel.py b/migrations/versions/a8d8e45f60a1_migrate_to_sqlmodel.py index 02b8712..7f9bdf1 100644 --- a/migrations/versions/a8d8e45f60a1_migrate_to_sqlmodel.py +++ b/migrations/versions/a8d8e45f60a1_migrate_to_sqlmodel.py @@ -3,15 +3,14 @@ Revision ID: a8d8e45f60a1 Revises: 115bcd2e1a38 Create Date: 2025-09-12 16:10:41.378716 - """ + +from datetime import UTC, datetime from typing import Sequence, Union -from alembic import op -from datetime import UTC, datetime import sqlalchemy as sa import sqlmodel - +from alembic import op # revision identifiers, used by Alembic. revision: str = 'a8d8e45f60a1' @@ -24,72 +23,74 @@ def upgrade() -> None: """Upgrade schema.""" # ### commands auto generated by Alembic - please adjust! ### with op.batch_alter_table('bookmark', schema=None) as batch_op: - batch_op.alter_column('note', - existing_type=sa.TEXT(), - type_=sqlmodel.sql.sqltypes.AutoString(), - nullable=True, - existing_server_default=sa.text('(null)')) - batch_op.alter_column('starred', - existing_type=sa.BOOLEAN(), - nullable=False, - existing_server_default=sa.text('0')) - batch_op.alter_column('modified_date', - existing_type=sa.DATETIME(), - nullable=True) - batch_op.alter_column('deleted_date', - existing_type=sa.DATETIME(), - nullable=True, - existing_server_default=sa.text('(null)')) - batch_op.alter_column('status', - existing_type=sa.INTEGER(), - nullable=False, - existing_server_default=sa.text('0')) + batch_op.alter_column( + 'note', + existing_type=sa.TEXT(), + type_=sqlmodel.sql.sqltypes.AutoString(), + nullable=True, + existing_server_default=sa.text('(null)'), + ) + batch_op.alter_column( + 'starred', existing_type=sa.BOOLEAN(), nullable=False, existing_server_default=sa.text('0') + ) + batch_op.alter_column('modified_date', existing_type=sa.DATETIME(), nullable=True) + batch_op.alter_column( + 'deleted_date', existing_type=sa.DATETIME(), nullable=True, existing_server_default=sa.text('(null)') + ) + batch_op.alter_column( + 'status', existing_type=sa.INTEGER(), nullable=False, existing_server_default=sa.text('0') + ) batch_op.create_foreign_key('bookmark_user', 'user', ['userkey'], ['key']) with op.batch_alter_table('publictag', schema=None) as batch_op: - batch_op.alter_column('created_date', - existing_type=sa.DATETIME(), - nullable=True, - existing_server_default=sa.text(str(datetime.now(UTC)))) + batch_op.alter_column( + 'created_date', + existing_type=sa.DATETIME(), + nullable=True, + existing_server_default=sa.text(str(datetime.now(UTC))), + ) batch_op.create_foreign_key('publictag_user', 'user', ['userkey'], ['key']) with op.batch_alter_table('user', schema=None) as batch_op: - batch_op.alter_column('theme', - existing_type=sa.VARCHAR(length=20), - nullable=False, - existing_server_default=sa.text("'green'")) + batch_op.alter_column( + 'theme', existing_type=sa.VARCHAR(length=20), nullable=False, existing_server_default=sa.text("'green'") + ) # ### end Alembic commands ### def downgrade() -> None: """Downgrade schema.""" # ### commands auto generated by Alembic - please adjust! ### - op.alter_column('user', 'theme', - existing_type=sa.VARCHAR(length=20), - nullable=True, - existing_server_default=sa.text("'green'")) + op.alter_column( + 'user', 'theme', existing_type=sa.VARCHAR(length=20), nullable=True, existing_server_default=sa.text("'green'") + ) op.drop_constraint(None, 'publictag', type_='foreignkey') - op.alter_column('publictag', 'created_date', - existing_type=sa.DATETIME(), - nullable=True, - existing_server_default=sa.text('(null)')) + op.alter_column( + 'publictag', + 'created_date', + existing_type=sa.DATETIME(), + nullable=True, + existing_server_default=sa.text('(null)'), + ) op.drop_constraint(None, 'bookmark', type_='foreignkey') - op.alter_column('bookmark', 'status', - existing_type=sa.INTEGER(), - nullable=True, - existing_server_default=sa.text('0')) - op.alter_column('bookmark', 'deleted_date', - existing_type=sa.DATETIME(), - nullable=True, - existing_server_default=sa.text('(null)')) - op.alter_column('bookmark', 'modified_date', - existing_type=sa.DATETIME(), - nullable=True) - op.alter_column('bookmark', 'starred', - existing_type=sa.BOOLEAN(), - nullable=True, - existing_server_default=sa.text('0')) - op.alter_column('bookmark', 'note', - existing_type=sqlmodel.sql.sqltypes.AutoString(), - type_=sa.TEXT(), - nullable=True, - existing_server_default=sa.text('(null)')) + op.alter_column( + 'bookmark', 'status', existing_type=sa.INTEGER(), nullable=True, existing_server_default=sa.text('0') + ) + op.alter_column( + 'bookmark', + 'deleted_date', + existing_type=sa.DATETIME(), + nullable=True, + existing_server_default=sa.text('(null)'), + ) + op.alter_column('bookmark', 'modified_date', existing_type=sa.DATETIME(), nullable=True) + op.alter_column( + 'bookmark', 'starred', existing_type=sa.BOOLEAN(), nullable=True, existing_server_default=sa.text('0') + ) + op.alter_column( + 'bookmark', + 'note', + existing_type=sqlmodel.sql.sqltypes.AutoString(), + type_=sa.TEXT(), + nullable=True, + existing_server_default=sa.text('(null)'), + ) # ### end Alembic commands ### diff --git a/migrations/versions/b8cbc6957df5_renamed_keys.py b/migrations/versions/b8cbc6957df5_renamed_keys.py index 8a86d08..b5bf51d 100644 --- a/migrations/versions/b8cbc6957df5_renamed_keys.py +++ b/migrations/versions/b8cbc6957df5_renamed_keys.py @@ -1,16 +1,13 @@ -"""Renamed keys +"""Renamed keys. Revision ID: b8cbc6957df5 Revises: a8d8e45f60a1 Create Date: 2025-09-12 22:26:38.684120 - """ + from typing import Sequence, Union from alembic import op -import sqlalchemy as sa -import sqlmodel - # revision identifiers, used by Alembic. revision: str = 'b8cbc6957df5'