gpt4 book ai didi

sqlalchemy - 如何让 Alembic 识别 SQLModel 数据库模型?

转载 作者:行者123 更新时间:2023-12-04 14:04:43 54 4
gpt4 key购买 nike

使用 SQLModel如何让 Alembic 识别以下模型?

from sqlmodel import Field, SQLModel

class Hero(SQLModel, table=True):
id: int = Field(default=None, primary_key=True)
name: str
secret_name: str
age: Optional[int] = None
我一直在研究的一种方法是为 Alembic 导入 SQLalchemy 模型,但查看源代码我找不到如何做到这一点。
如何使 Alembic 与 SQLModel 模型一起工作?

最佳答案

Advanced user guide中应该有相关信息很快就有比我更好的解释,但这是我如何使 Alimbic 迁移工作的。
首先运行alembic init migrations在您的控制台中生成迁移文件夹。内迁移 文件夹应该是空的 版本 子文件夹, env.py 文件, script.py.mako 文件。
script.py.mako 文件我们应该添加行 import sqlmodel这两条线附近的某处

#script.py.mako
from alembic import op
import sqlalchemy as sa
import sqlmodel # added
那么我们应该编辑 env.py 文件
#env.py
from logging.config import fileConfig

from sqlalchemy import engine_from_config
from sqlalchemy import pool

from alembic import context

from app.models import * # necessarily to import something from file where your models are stored

# this is the Alembic Config object, which provides
# access to the values within the .ini file in use.
config = context.config

# Interpret the config file for Python logging.
# This line sets up loggers basically.
fileConfig(config.config_file_name)

# add your model's MetaData object here
# for 'autogenerate' support
# from myapp import mymodel
# target_metadata = mymodel.Base.metadata
target_metadata = None
# comment line above and instead of that write
target_metadata = SQLModel.metadata
在写作时,您想到了一个想法,您忘记从您的 中导入某些内容。模型.py (或您的模型存储的任何其他地方)。这是主要的问题
此外,一个重要的注意事项是按 保存模型中的更改。 ctrl(CMD) + S - 有一些问题。
最后,运行
 alembic revision --autogenerate -m "your message"
应该在 中生成一个新的 .py 文件版本 包含更改的文件夹。
 alembic upgrade head  
将您的更改应用到数据库。

关于sqlalchemy - 如何让 Alembic 识别 SQLModel 数据库模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68932099/

54 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com