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?!
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
yPartner
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óndb_drop_and_create_all
.