Closed3

Alembic で生成した SQLModel マイグレーションファイルで `NameError: name 'sqlmodel' is not defined` になる問題

ta14-uta14-u

Python の DB マイグレーションライブラリの Alembic で SQLModel のマイグレーションファイルを生成した際、生成したファイルにて NameError: name 'sqlmodel' is not definedのエラーが発生していたので解決したい

ta14-uta14-u

生成したマイグレーションファイルを見ると以下の import 文になっていて sqlmodel が import できていない

# import されているのは 以下のみ
import sqlalchemy as sa
from alembic import op
ta14-uta14-u

以下の記事に解決方法が書いてあった
https://stackoverflow.com/questions/68932099/how-to-get-alembic-to-recognise-sqlmodel-database-model

alembic init で生成される script.py.makoimport sqlmodelを追加すれば良いらしい

"""${message}

Revision ID: ${up_revision}
Revises: ${down_revision | comma,n}
Create Date: ${create_date}

"""
from alembic import op
import sqlalchemy as sa
import sqlmodel       # <= ここ
${imports if imports else ""}

Alembic 公式ページによると script.py.mako はマイグレーションファイルのテンプレートなので、何か追加したい場合はここを編集すれば良いらしい。

This is a Mako template file which is used to generate new migration scripts. Whatever is here is used to generate new files within versions/.
ref: https://alembic.sqlalchemy.org/en/latest/tutorial.html

このスクラップは2023/04/07にクローズされました