mirror of
https://github.com/suyiiyii/nonebot-bison.git
synced 2025-06-08 04:43:00 +08:00
🐛 在Postgresql下,user_target字段使用jsonb代替json
This commit is contained in:
parent
009bfb397e
commit
7dacae379a
@ -1,10 +1,10 @@
|
|||||||
import datetime
|
import datetime
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import Optional
|
|
||||||
|
|
||||||
from nonebot_plugin_datastore import get_plugin_data
|
from nonebot_plugin_datastore import get_plugin_data
|
||||||
from nonebot_plugin_saa.utils import PlatformTarget
|
from nonebot_plugin_saa.utils import PlatformTarget
|
||||||
from sqlalchemy import JSON, ForeignKey, String, UniqueConstraint
|
from sqlalchemy import JSON, ForeignKey, String, UniqueConstraint
|
||||||
|
from sqlalchemy.dialects.postgresql import JSONB
|
||||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||||
|
|
||||||
from ..types import Category, Tag
|
from ..types import Category, Tag
|
||||||
@ -15,7 +15,7 @@ get_plugin_data().set_migration_dir(Path(__file__).parent / "migrations")
|
|||||||
|
|
||||||
class User(Model):
|
class User(Model):
|
||||||
id: Mapped[int] = mapped_column(primary_key=True)
|
id: Mapped[int] = mapped_column(primary_key=True)
|
||||||
user_target: Mapped[dict] = mapped_column(JSON)
|
user_target: Mapped[dict] = mapped_column(JSON().with_variant(JSONB, "postgresql"))
|
||||||
|
|
||||||
subscribes: Mapped[list["Subscribe"]] = relationship(back_populates="user")
|
subscribes: Mapped[list["Subscribe"]] = relationship(back_populates="user")
|
||||||
|
|
||||||
|
@ -7,6 +7,7 @@ Create Date: 2023-03-20 00:39:30.199915
|
|||||||
"""
|
"""
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
from alembic import op
|
from alembic import op
|
||||||
|
from sqlalchemy.dialects.postgresql import JSONB
|
||||||
|
|
||||||
# revision identifiers, used by Alembic.
|
# revision identifiers, used by Alembic.
|
||||||
revision = "632b8086bc2b"
|
revision = "632b8086bc2b"
|
||||||
@ -19,7 +20,13 @@ def upgrade() -> None:
|
|||||||
# ### commands auto generated by Alembic - please adjust! ###
|
# ### commands auto generated by Alembic - please adjust! ###
|
||||||
with op.batch_alter_table("nonebot_bison_user", schema=None) as batch_op:
|
with op.batch_alter_table("nonebot_bison_user", schema=None) as batch_op:
|
||||||
batch_op.drop_constraint("unique-user-constraint", type_="unique")
|
batch_op.drop_constraint("unique-user-constraint", type_="unique")
|
||||||
batch_op.add_column(sa.Column("user_target", sa.JSON(), nullable=True))
|
batch_op.add_column(
|
||||||
|
sa.Column(
|
||||||
|
"user_target",
|
||||||
|
sa.JSON().with_variant(JSONB, "postgresql"),
|
||||||
|
nullable=True,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
# ### end Alembic commands ###
|
# ### end Alembic commands ###
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@ Create Date: 2023-03-20 11:08:42.883556
|
|||||||
"""
|
"""
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
from alembic import op
|
from alembic import op
|
||||||
from sqlalchemy.dialects import sqlite
|
from sqlalchemy.dialects.postgresql import JSONB
|
||||||
|
|
||||||
# revision identifiers, used by Alembic.
|
# revision identifiers, used by Alembic.
|
||||||
revision = "67c38b3f39c2"
|
revision = "67c38b3f39c2"
|
||||||
@ -16,11 +16,17 @@ branch_labels = None
|
|||||||
depends_on = None
|
depends_on = None
|
||||||
|
|
||||||
|
|
||||||
|
def jsonb_if_postgresql_else_json():
|
||||||
|
return sa.JSON().with_variant(JSONB, "postgresql")
|
||||||
|
|
||||||
|
|
||||||
def upgrade() -> None:
|
def upgrade() -> None:
|
||||||
# ### commands auto generated by Alembic - please adjust! ###
|
# ### commands auto generated by Alembic - please adjust! ###
|
||||||
with op.batch_alter_table("nonebot_bison_user", schema=None) as batch_op:
|
with op.batch_alter_table("nonebot_bison_user", schema=None) as batch_op:
|
||||||
batch_op.alter_column(
|
batch_op.alter_column(
|
||||||
"user_target", existing_type=sqlite.JSON(), nullable=False
|
"user_target",
|
||||||
|
existing_type=jsonb_if_postgresql_else_json(),
|
||||||
|
nullable=False,
|
||||||
)
|
)
|
||||||
|
|
||||||
# ### end Alembic commands ###
|
# ### end Alembic commands ###
|
||||||
@ -29,6 +35,10 @@ def upgrade() -> None:
|
|||||||
def downgrade() -> None:
|
def downgrade() -> None:
|
||||||
# ### commands auto generated by Alembic - please adjust! ###
|
# ### commands auto generated by Alembic - please adjust! ###
|
||||||
with op.batch_alter_table("nonebot_bison_user", schema=None) as batch_op:
|
with op.batch_alter_table("nonebot_bison_user", schema=None) as batch_op:
|
||||||
batch_op.alter_column("user_target", existing_type=sqlite.JSON(), nullable=True)
|
batch_op.alter_column(
|
||||||
|
"user_target",
|
||||||
|
existing_type=jsonb_if_postgresql_else_json(),
|
||||||
|
nullable=True,
|
||||||
|
)
|
||||||
|
|
||||||
# ### end Alembic commands ###
|
# ### end Alembic commands ###
|
||||||
|
Loading…
x
Reference in New Issue
Block a user