我正在向现有表中添加一列。这个新列是nullable=False
。
op.add_column('mytable', sa.Column('mycolumn', sa.String(), nullable=False))
当我运行迁移时,它会报错:
sqlalchemy.exc.IntegrityError: column "mycolumn" contains null values
发布于 2018-12-10 12:59:57
它正确地告诉您,数据库中存在(或将存在)该列的空值。答案是先编辑迁移文件以更新列,然后再更改列定义:
from sqlalchemy.sql import table, column
def upgrade():
op.add_column('role', sa.Column('role_name', sa.String(length=30), nullable=True))
role = table('role', column('role_name'))
op.execute(role.update().values(role_name=''))
op.alter_column('role', 'role_name', nullable=False)
https://stackoverflow.com/questions/33705697
复制相似问题