首页 > 解决方案 > Alembic 无法删除 server_default

问题描述

我正在尝试向现有表添加新列,但在删除 server_default 时出现错误。

from alembic import op
import sqlalchemy as sa


# revision identifiers, used by Alembic.
revision = 'a29663449f3c'
down_revision = 'e42f9a7ca3d2'
branch_labels = None
depends_on = None


def upgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.add_column('register_code', sa.Column('interest', sa.Integer(), nullable=False, server_default='0'))
    op.alter_column('register_code', 'interest', server_default=None)
    # ### end Alembic commands ###


def downgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.drop_column('register_code', 'interest')
    # ### end Alembic commands ###

执行时出现下一个错误flask db migrate

sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) near "ALTER": syntax error
[SQL: ALTER TABLE register_code ALTER COLUMN interest DROP DEFAULT]
(Background on this error at: http://sqlalche.me/e/e3q8)

也许 SQLLite 不支持删除 server_default?

标签: pythonsqlalchemyalembic

解决方案


SQLLite 不支持删除 server_default


推荐阅读