nonebot-bison/nonebot_bison/config/migrations/a5466912fad0_map_user.py
pre-commit-ci[bot] f6ee4a4c1b
⬆️ auto update by pre-commit hooks (#416)
* ⬆️ auto update by pre-commit hooks

updates:
- [github.com/astral-sh/ruff-pre-commit: v0.0.292 → v0.1.9](https://github.com/astral-sh/ruff-pre-commit/compare/v0.0.292...v0.1.9)
- [github.com/pycqa/isort: 5.12.0 → 5.13.2](https://github.com/pycqa/isort/compare/5.12.0...5.13.2)
- [github.com/psf/black: 23.9.1 → 23.12.1](https://github.com/psf/black/compare/23.9.1...23.12.1)
- [github.com/pre-commit/mirrors-prettier: v3.0.3 → v4.0.0-alpha.8](https://github.com/pre-commit/mirrors-prettier/compare/v3.0.3...v4.0.0-alpha.8)
- [github.com/pre-commit/mirrors-eslint: v8.50.0 → v9.0.0-alpha.0](https://github.com/pre-commit/mirrors-eslint/compare/v8.50.0...v9.0.0-alpha.0)

* 💄 auto fix by pre-commit hooks

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2024-01-02 10:24:42 +08:00

53 lines
1.5 KiB
Python

"""map user
Revision ID: a5466912fad0
Revises: 632b8086bc2b
Create Date: 2023-03-20 01:14:42.623789
"""
import sqlalchemy as sa
from alembic import op
from sqlalchemy.orm import Session
from sqlalchemy.ext.automap import automap_base
# revision identifiers, used by Alembic.
revision = "a5466912fad0"
down_revision = "632b8086bc2b"
branch_labels = None
depends_on = None
def upgrade() -> None:
Base = automap_base()
Base.prepare(op.get_bind())
User = Base.classes.nonebot_bison_user
with Session(op.get_bind()) as sess:
users = sess.scalars(sa.select(User)).all()
for user in users:
if user.type == "group":
user.user_target = {"platform_type": "QQ Group", "group_id": user.uid}
elif user.type == "private":
user.user_target = {"platform_type": "QQ Private", "user_id": user.uid}
else:
sess.delete(user)
sess.add_all(users)
sess.commit()
def downgrade() -> None:
Base = automap_base()
Base.prepare(op.get_bind())
User = Base.classes.nonebot_bison_user
with Session(op.get_bind()) as sess:
users = sess.scalars(sa.select(User)).all()
for user in users:
if user.user_target["platform_type"] == "QQ Group":
user.uid = user.user_target["group_id"]
user.type = "group"
else:
user.uid = user.user_target["user_id"]
user.type = "private"
sess.add_all(users)
sess.commit()