This commit is contained in:
fengchuanhn@gmail.com
2026-05-21 01:47:21 +08:00
parent 7f57dfa9ed
commit 5ee6a57dd1
29 changed files with 794 additions and 18 deletions

View File

@@ -8,7 +8,7 @@ from sqlalchemy.ext.asyncio import async_engine_from_config
from app.config import get_settings
from app.database import Base
from app.models import CardKey, DesktopConfig, User # noqa: F401 — 注册元数据
from app.models import CardKey, DesktopConfig, Oem, User # noqa: F401 — 注册元数据
config = context.config
settings = get_settings()

View File

@@ -0,0 +1,49 @@
"""add users oem_id and agent_id
Revision ID: 006
Revises: 005
Create Date: 2026-05-21
"""
from typing import Sequence, Union
import sqlalchemy as sa
from alembic import op
revision: str = "006"
down_revision: Union[str, None] = "005"
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None
def upgrade() -> None:
op.add_column("users", sa.Column("oem_id", sa.Integer(), nullable=True))
op.add_column("users", sa.Column("agent_id", sa.Integer(), nullable=True))
op.create_foreign_key(
"fk_users_oem_id_users",
"users",
"users",
["oem_id"],
["id"],
ondelete="SET NULL",
)
op.create_foreign_key(
"fk_users_agent_id_users",
"users",
"users",
["agent_id"],
["id"],
ondelete="SET NULL",
)
op.create_index("ix_users_oem_id", "users", ["oem_id"])
op.create_index("ix_users_agent_id", "users", ["agent_id"])
def downgrade() -> None:
op.drop_index("ix_users_agent_id", table_name="users")
op.drop_index("ix_users_oem_id", table_name="users")
op.drop_constraint("fk_users_agent_id_users", "users", type_="foreignkey")
op.drop_constraint("fk_users_oem_id_users", "users", type_="foreignkey")
op.drop_column("users", "agent_id")
op.drop_column("users", "oem_id")

View File

@@ -0,0 +1,55 @@
"""add oem_id and agent_id to card_keys
Revision ID: 007
Revises: 006
Create Date: 2026-05-21
"""
from typing import Sequence, Union
import sqlalchemy as sa
from alembic import op
revision: str = "007"
down_revision: Union[str, None] = "006"
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None
def upgrade() -> None:
op.add_column(
"card_keys",
sa.Column("oem_id", sa.Integer(), nullable=True),
)
op.add_column(
"card_keys",
sa.Column("agent_id", sa.Integer(), nullable=True),
)
op.create_foreign_key(
"fk_card_keys_oem_id_users",
"card_keys",
"users",
["oem_id"],
["id"],
ondelete="SET NULL",
)
op.create_foreign_key(
"fk_card_keys_agent_id_users",
"card_keys",
"users",
["agent_id"],
["id"],
ondelete="SET NULL",
)
op.create_index(op.f("ix_card_keys_oem_id"), "card_keys", ["oem_id"], unique=False)
op.create_index(op.f("ix_card_keys_agent_id"), "card_keys", ["agent_id"], unique=False)
def downgrade() -> None:
op.drop_index(op.f("ix_card_keys_agent_id"), table_name="card_keys")
op.drop_index(op.f("ix_card_keys_oem_id"), table_name="card_keys")
op.drop_constraint("fk_card_keys_agent_id_users", "card_keys", type_="foreignkey")
op.drop_constraint("fk_card_keys_oem_id_users", "card_keys", type_="foreignkey")
op.drop_column("card_keys", "agent_id")
op.drop_column("card_keys", "oem_id")

View File

@@ -0,0 +1,52 @@
"""create oem table
Revision ID: 008
Revises: 007
Create Date: 2026-05-21
"""
from typing import Sequence, Union
import sqlalchemy as sa
from alembic import op
revision: str = "008"
down_revision: Union[str, None] = "007"
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None
def upgrade() -> None:
op.create_table(
"oem",
sa.Column("id", sa.Integer(), autoincrement=True, nullable=False),
sa.Column("user_id", sa.Integer(), nullable=False),
sa.Column("software_name", sa.String(length=128), server_default="", nullable=False),
sa.Column("logo_path", sa.Text(), nullable=True),
sa.Column("wechat", sa.String(length=128), nullable=True),
sa.Column("qq", sa.String(length=128), nullable=True),
sa.Column("wechat_qrcode", sa.Text(), nullable=True),
sa.Column("qq_qrcode", sa.Text(), nullable=True),
sa.Column("description", sa.String(length=255), nullable=True),
sa.Column(
"created_at",
sa.DateTime(timezone=True),
server_default=sa.text("CURRENT_TIMESTAMP"),
nullable=False,
),
sa.Column(
"updated_at",
sa.DateTime(timezone=True),
server_default=sa.text("CURRENT_TIMESTAMP"),
nullable=False,
),
sa.ForeignKeyConstraint(["user_id"], ["users.id"], ondelete="RESTRICT"),
sa.PrimaryKeyConstraint("id"),
)
op.create_index(op.f("ix_oem_user_id"), "oem", ["user_id"], unique=False)
def downgrade() -> None:
op.drop_index(op.f("ix_oem_user_id"), table_name="oem")
op.drop_table("oem")

View File

@@ -0,0 +1,65 @@
"""oem image columns store file paths only
Revision ID: 009
Revises: 008
Create Date: 2026-05-21
"""
from typing import Sequence, Union
import sqlalchemy as sa
from alembic import op
revision: str = "009"
down_revision: Union[str, None] = "008"
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None
def upgrade() -> None:
op.alter_column(
"oem",
"logo_path",
existing_type=sa.Text(),
type_=sa.String(length=512),
existing_nullable=True,
)
op.alter_column(
"oem",
"wechat_qrcode",
existing_type=sa.Text(),
type_=sa.String(length=512),
existing_nullable=True,
)
op.alter_column(
"oem",
"qq_qrcode",
existing_type=sa.Text(),
type_=sa.String(length=512),
existing_nullable=True,
)
def downgrade() -> None:
op.alter_column(
"oem",
"qq_qrcode",
existing_type=sa.String(length=512),
type_=sa.Text(),
existing_nullable=True,
)
op.alter_column(
"oem",
"wechat_qrcode",
existing_type=sa.String(length=512),
type_=sa.Text(),
existing_nullable=True,
)
op.alter_column(
"oem",
"logo_path",
existing_type=sa.String(length=512),
type_=sa.Text(),
existing_nullable=True,
)