Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

1.6K
Views
SQLAlchemy: ¿Cómo agregar una columna a una tabla existente?

Estoy tratando de agregar un campo o columna a una tabla existente usando SQLAchemy.

A continuación se muestra la clase de tabla.

 class ReleaseVersion(Base): __tablename__ = 'versions' id = Column(Integer, primary_key=True, autoincrement=True) release = Column(String(128), nullable=False, unique=True) def __init__(self,release, id=None): if(id): self.id = id self.release = release

Inicialicé la tabla usando la siguiente línea

 myDB.ReleaseVersion.__table__.create(bind=self.engine, checkfirst=True)

Después de usar la base de datos durante algún tiempo, necesito agregar un campo booleano, 'is_currentversion' mientras mantengo todo el contenido existente de la tabla, pero no estoy tan seguro de cómo hacerlo.

¿Debo crear manualmente el campo en la tabla y actualizar la clase? Alternativamente, agregue el campo en la clase de tabla y agregue la columna si no existe en la función de inicialización.

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

TL;RD

Instale matraz-migrar con pip o en sus requirements.txt , luego, una vez que agregue su nueva columna en sus modelos:

 flask db init flask db migrate -m "Adding column x." flask db upgrade

Matraz-Migrar

Lo que está buscando se llama una migración de base de datos. El uso de algo como Flask-Migrate le permite cambiar el esquema de la base de datos, agregando o eliminando columnas, sin perder sus datos. También crea versiones de estas migraciones de bases de datos para que pueda revertirlas si es necesario.

Flask-Migrate usa el módulo Alambique, por lo que ambos tienen la misma funcionalidad, Flask-Migrate se usa para configurar correctamente el alambique con su aplicación Flask y SQL-Alchemy.

Si tu aplicación está en preproducción:

Aquí hay un gran video de Pretty Printed para configurar Flask-Migrate. Tenga en cuenta que Flask-Migrate está diseñado para aplicaciones Flask que utilizan SQL-Alchemy como ORM.

Si tu aplicación está en posproducción:

Tienes dos opciones.

  1. Si solo desea realizar un seguimiento de las migraciones de bases de datos en el futuro (opción más fácil)

Ejecute flask db init para crear el repositorio de migración. Agregue la nueva columna a su modelo de base de datos.

Ejecute flask db migrate para generar una migración. El script de migración solo tendrá la nueva columna.

Ejecute la flask db upgrade para aplicar la nueva migración a su base de datos.

En este punto, su base de datos debería tener la nueva columna y puede continuar trabajando. Repita los pasos anteriores cada vez que necesite realizar cambios adicionales.

Tenga en cuenta que con este enfoque, no puede volver a crear toda la base de datos desde cero. Debe tener una forma de inicializar la base de datos al esquema que tenía el día 1, y luego puede aplicar el historial de migración para actualizarlo a su esquema actual.

  1. Si desea realizar un seguimiento de todo el historial de migración, incluido el esquema del día en que agrega Flask-Migrate a su aplicación.

Comience con el inicio de la base de datos del flask db init para crear el repositorio de migración. A continuación, debe engañar a Flask-Migrate para que piense que su base de datos está vacía. Puede hacer esto cambiando el nombre de su base de datos real y creando una nueva base de datos con el mismo nombre que no tiene tablas.

En ese estado, ejecute flask db migrate . Esto generará una migración que contiene todo el esquema de su base de datos. Una vez que tenga esa migración inicial, restaure su base de datos al estado correcto.

Ejecute flask db stamp head para marcar la base de datos como actualizada. Agregue la nueva columna a su modelo de base de datos.

Ejecute la flask db migrate de nuevo, para generar una segunda migración. El script de migración solo tendrá la nueva columna.

Ejecute la flask db upgrade para aplicar la nueva migración a su base de datos.

over 4 years ago · Santiago Trujillo Report

0

Simplemente puede agregar una columna en su modelo y luego ejecutar los siguientes comandos.

 flask db migrate -m "Your Message."

Entonces corre:

 flask db upgrade

Ahora revisa tu base de datos. Además, puede tomar referencias desde Aquí

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!