这可能是由于Alembic没有检测到您新添加的模型的原因。可以通过以下步骤解决该
确保您已将新模型导入到您的项目中并在models/init.py中注册了该模型。
运行以下命令来生成迁移文件:
flask db migrate -m "New model added"
确保您的迁移脚本中包含新模型的定义。例如,如果您的新模型名为“User”,则可以在迁移脚本中包含以下代码:
from alembic import op
import sqlalchemy as sa
def upgrade():
op.create_table('users',
sa.Column('id', sa.Integer(), nullable=False),
sa.Column('username', sa.String(length=50), nullable=True),
...
sa.PrimaryKeyConstraint('id'),
schema='your_schema'
)
def downgrade():
op.drop_table('users', schema='your_schema')
运行以下命令将迁移提交到数据库中:
flask db upgrade
以上操作完成后,您的新模型和表格应该已成功添加到数据库中。
附代码示例:
# models.py
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(50), nullable=True)
# ...
# migrations/versions/xxxxxx_new_model_added.py
from alembic import op
import sqlalchemy as sa
def upgrade():
op.create_table('users',
sa.Column('id', sa.Integer(), nullable=False),
sa.Column('username', sa.String(length=50), nullable=True),
...
sa.PrimaryKeyConstraint('id'),
schema='your_schema'
)
def downgrade():
op.drop_table('users', schema='your_schema')
上一篇:Alembic和Postgres:如何切换到另一个模式
下一篇:Alembicisgivingme`RuntimeWarning:coroutine'connect'wasneverawaited`