11
This commit is contained in:
@@ -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()
|
||||
|
||||
49
alembic/versions/006_add_user_oem_agent.py
Normal file
49
alembic/versions/006_add_user_oem_agent.py
Normal 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")
|
||||
55
alembic/versions/007_add_card_key_oem_agent.py
Normal file
55
alembic/versions/007_add_card_key_oem_agent.py
Normal 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")
|
||||
52
alembic/versions/008_create_oem_table.py
Normal file
52
alembic/versions/008_create_oem_table.py
Normal 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")
|
||||
65
alembic/versions/009_oem_image_path_varchar.py
Normal file
65
alembic/versions/009_oem_image_path_varchar.py
Normal 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,
|
||||
)
|
||||
Reference in New Issue
Block a user