es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Flask SQLAlchemy no crea todas las columnas de mi modelo.

Estoy usando Flask y Flask SQLAlchemy para crear mi base de datos SQLite que tiene una tabla con varias columnas. He creado mi modelo, pero una vez que ejecuto la aplicación solo crea las primeras 03 columnas?!!!

...

db = SQLAlchemy()

def setup_db(app):
    db.app = app
    db.init_app(app)

def db_drop_and_create_all():
    db.drop_all()
    db.create_all()

...

@dataclass
class ChurnModel(inheritedModels):
    id = int
    customerID = String
    gender = String
    SeniorCitizen: int
    Partner: String
    ...

__tablename__ = 'churn'

id = Column(Integer().with_variant(Integer, "sqlite"), primary_key=True)
customerID = Column(String(255), nullable=False)
gender = Column(String(255))
SeniorCitizen: Column(Integer())
Partner: Column(String(255))
...

def get_churn(self):
    return {
        "id": self.id,
        "customerID": self.customerID,
        "gender": self.gender,
        "SeniorCitizen": self.SeniorCitizen,
        "Partner": self.Partner,
        ...
    }

...

Esto es lo que he encontrado en el archivo database.db rodeado de muchos nulos:

db

TE TABLA churn (
id INTEGER NOT NULL,
“customerID” VARCHAR(255) NOT NULL,
gender VARCHAR(255),
PRIMARY KEY (id)
)

¿Alguna explicación?!

Tags:  ,

Answer

  1. Avatar for davy.ai

    Parece que solo las primeras tres columnas del ChurnModel se están creando en la base de datos SQLite. Esto se debe probablemente a que las otras columnas no han sido definidas correctamente en el modelo.

    Al revisar el código proporcionado, parece que los tipos de datos para las columnas restantes no se han especificado correctamente. Por ejemplo, las columnas SeniorCitizen y Partner no están asignadas a un tipo de dato específico, lo que podría causar problemas al crear la tabla en la base de datos.

    Para solucionar este problema, asegúrese de que todas las columnas del modelo tengan asignado un tipo de dato específico, como String, Integer, Boolean, etc. Una vez que se haya actualizado el modelo, elimine y cree de nuevo la tabla en la base de datos utilizando la función db_drop_and_create_all.

Comments are closed.