如何使用操作执行在alembic upgrad

2024-03-29 01:48:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个名为orders的表,其中有一个名为amount的列,它最初包含某些null值。在

我将它转换为nullable=False,对于任何新订单,默认值为0,但是在现有表中,已经存在有限的空值。在

在升级数据库之前,我想将表中的这些空值转换为0。在



"""empty message

Revision ID: 6e5c574cbfb8
Revises: 35f427e85075
Create Date: 2019-03-24 11:09:42.707206

"""

from alembic import op
import sqlalchemy as sa
import sqlalchemy_utils
from sqlalchemy.dialects import postgresql

# revision identifiers, used by Alembic.
revision = '6e5c574cbfb8'
down_revision = '35f427e85075'


def upgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.execute("UPDATE orders SET amount=0 WHERE amount=null")
    op.alter_column('orders', 'amount',
               existing_type=postgresql.DOUBLE_PRECISION(precision=53),
               nullable=False,
               )
    # ### end Alembic commands ###


def downgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.alter_column('orders', 'amount',
               existing_type=postgresql.DOUBLE_PRECISION(precision=53),
               nullable=True)
    # ### end Alembic commands ###

但这仍然显示错误,任何关于如何使用的帮助操作执行是吗?在


Tags: fromimportfalsebysqlalchemypostgresqlalembicrevision