mirror of
https://github.com/aquatix/digimarks.git
synced 2025-12-06 20:55:10 +01:00
Migration to sqlmodel way of doing things
This commit is contained in:
95
migrations/versions/a8d8e45f60a1_migrate_to_sqlmodel.py
Normal file
95
migrations/versions/a8d8e45f60a1_migrate_to_sqlmodel.py
Normal file
@@ -0,0 +1,95 @@
|
||||
"""Migrate to sqlmodel.
|
||||
|
||||
Revision ID: a8d8e45f60a1
|
||||
Revises: 115bcd2e1a38
|
||||
Create Date: 2025-09-12 16:10:41.378716
|
||||
|
||||
"""
|
||||
from typing import Sequence, Union
|
||||
|
||||
from alembic import op
|
||||
from datetime import UTC, datetime
|
||||
import sqlalchemy as sa
|
||||
import sqlmodel
|
||||
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision: str = 'a8d8e45f60a1'
|
||||
down_revision: Union[str, Sequence[str], None] = '115bcd2e1a38'
|
||||
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! ###
|
||||
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.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.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'"))
|
||||
# ### 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.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.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)'))
|
||||
# ### end Alembic commands ###
|
||||
@@ -69,7 +69,7 @@ class Bookmark(SQLModel, table=True):
|
||||
userkey: str = Field(foreign_key='user.key')
|
||||
title: str = Field(default='')
|
||||
url: AnyUrl = Field(default='', sa_type=build_custom_type(AnyUrl))
|
||||
note: str = Field(default='')
|
||||
note: str = Field(default='', nullable=True)
|
||||
# image: str = Field(default='')
|
||||
url_hash: str = Field(default='')
|
||||
tags: str = Field(default='')
|
||||
@@ -80,8 +80,8 @@ class Bookmark(SQLModel, table=True):
|
||||
http_status: int = Field(default=HTTPStatus.OK)
|
||||
|
||||
created_date: datetime = Field(default=datetime.now(UTC))
|
||||
modified_date: datetime = Field(default=None)
|
||||
deleted_date: datetime = Field(default=None)
|
||||
modified_date: datetime = Field(default=None, nullable=True)
|
||||
deleted_date: datetime = Field(default=None, nullable=True)
|
||||
|
||||
status: int = Field(default=Visibility.VISIBLE)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user