alembic e SQLite : Erro ao adicionar coluna

25 views
Skip to first unread message

Oberdan Santos

unread,
Nov 9, 2023, 10:01:52 AM11/9/23
to pylons-discuss
Olá!!

Sou  novo no ambiente pyrâmide, mas tenho gostado do que tenho feito e visto.  Tenho um script baseado em FASTAPI  para predição do risco de doenças crônicas não transmissíveis de auxílio à decisão clínica na atenção primária de saúde. Funciona perfeitamente. No front uso streamlit para ver o resultado de até 10 doenças cronicas simultaneamete. Isso vem crescendo para outros modulos (encaminhamento e gestão inteligente). Nesse momento buscar robustez para a aplicação e o ambiente pyramid tem me permitido avançar. Algumas coisas são mais lentas em relação aos avanços por conta de braços, ou sejas, pessoas com dominio na ferramenta pyramid, mas tudo bem vamos em frente.  Do pedido:

Estou usando a estrutura cookiecutter

Adicionando coluna value2:

# models/mymodel.py
from .meta import Base

class MyModel(Base):
    __versioned__ = {}
    __tablename__ = 'models'
    id = Column(Integer, primary_key=True)
    name = Column(Text, nullable=False, unique=True)
    value = Column(Integer, nullable=False)
    value1 = Column(Integer, nullable=False)
    value2 = Column(Integer, nullable=False)

Index('my_index', MyModel.name, unique=True, mysql_length=255)


 Alembic gera o script de migração abaixo

"""use new models MyModel

Revision ID: bc850eb0bbba
Revises: 8db6c88f1d4f
Create Date: 2023-11-09 08:58:02.513026

"""
from alembic import op
import sqlalchemy as sa


# revision identifiers, used by Alembic.
revision = 'bc850eb0bbba'
down_revision = '8db6c88f1d4f'
branch_labels = None
depends_on = None

def upgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.add_column('models', sa.Column('value2', sa.Integer(), nullable=False))
    op.alter_column('models', 'name',
               existing_type=sa.TEXT(),
               nullable=False)
    op.alter_column('models', 'value',
               existing_type=sa.INTEGER(),
               nullable=False)
    op.alter_column('models', 'value1',
               existing_type=sa.INTEGER(),
               nullable=False)
    op.create_unique_constraint(op.f('uq_models_name'), 'models', ['name'])
    # ### end Alembic commands ###


>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<
Ao aplicar a migração recebo o seguinte erro.
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) Cannot add a NOT NULL column with default value NULL
[SQL: ALTER TABLE models ADD COLUMN value2 INTEGER NOT NULL]
Como posso resolver esse problema??? Qualquer ajuda é bem vida.
Reply all
Reply to author
Forward
0 new messages