首页 > 解决方案 > Flask - 更改现有数据库中的列类型

问题描述

我在现有数据库中有以下模型:

class Advert(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    date = db.Column(db.DateTime, nullable=False, default = datetime.utcnow)
    title = db.Column(db.String(100), nullable=False)
    content = db.Column(db.Text, nullable = False)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)
    category = db.Column(db.String(50), nullable=False, unique=True)

我只想从我的模型中删除 unique=True 。怎么做?

标签: pythonsqlalchemyalembic

解决方案


我想建议使用Alembic进行数据库迁移。

假设您要更改表格。只需创建一个空方案迁移alembic revision -m "alter table"

然后您可以在此处添加更改:

from alembic import op
import sqlalchemy as sa

revision = 'xxx'
down_revision = 'xxx'

def upgrade():
    op.execute('ALTER TABLE xx ... ')
    # Add the ALTER query here

def downgrade():
    pass
    # Add the ALTER query here

推荐阅读