Как использовать op.execute в обновлении alembic - PullRequest
0 голосов
/ 24 марта 2019

У меня есть таблица с именем orders, в которой есть столбец с именем сумму, который изначально содержит определенные значения null.

Я конвертирую его в nullable=False со значением по умолчанию 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?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...