【发布时间】:2019-08-14 17:08:12
【问题描述】:
我有一个名为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 ###
但这仍然显示错误,有关如何正确使用 op.execute 的任何帮助?
【问题讨论】:
-
错误是什么?请包含完整的回溯。
-
请显示您遇到的错误
标签: python flask-sqlalchemy database-migration