without query postgres example postgresql flask-sqlalchemy alembic sqlalchemy-migrate

postgresql - postgres - flask sqlalchemy query



El error del comando util de alambique no puede encontrar el identificador (2)

Alembic almacena el historial de versiones en su base de datos. Por lo tanto, está utilizando el valor almacenado en su base de datos para buscar la revisión. El número de versión de mi base de datos personal se almacena en la tabla alembic_version :

mysql> SELECT * FROM alembic_version; +-------------+ | version_num | +-------------+ | c8ad125e063 | +-------------+ 1 row in set (0.00 sec)

Sugerencia: use el comando SHOW TABLES si es una base de datos basada en SQL para ver las tablas.

Para resolver su problema simplemente use el comando:

DROP TABLE alembic_version;

O cualquiera que sea el nombre de la tabla de versión de base de datos Y luego debe reiniciar la carpeta de migración con el comando:

python manage.py db init

Y luego creando una nueva migración:

python manage.py db migrate

Y entonces debería ser bueno ir con migraciones de trabajo en alambique.

Estoy tratando de usar alambique para manejar migraciones locales en mi proyecto. Funcionó la primera vez, pero luego tuve que eliminar la carpeta y reiniciar (no pregunte por qué, solo tenía que hacerlo). Sigo este tutorial y ejecuto el comando

python manage.py db init

Y estaba bien. Pero cuando intento correr

python manage.py db migrate

Estoy recibiendo este error:

alembic.util.CommandError: Can''t locate revision identified by ''31b8ab83c7d''

Ahora, parece que Alambique está buscando una revisión que ya no existe. ¿Hay alguna manera de hacer que alembic olvide ese archivo? ¿O como reiniciar la comparación de Ninguno a -> auto-generado de nuevo?


La solución de SirKaiserKai no funcionó para mí, probablemente porque cometí un error estúpido la última vez que migré y eliminé un archivo que debería haber guardado.

En lugar de alembic_revision tabla alembic_revision , actualicé el valor en version_num para que coincida con el lugar donde sabía que estaba mi base de datos.

Asegúrese de usar el ID de migración del archivo que coincida con el estado actual de su base de datos

  1. Compruebe el número de migración que falta

    psql=> SELECT * FROM alembic_version; +-------------------------+ | version_num | +-------------------------+ | <the missing migration> | +-------------------------+ (1 row)

  2. Actualizar el valor

    psql=> UPDATE alembic_version psql-> SET version_num = ''<true state of DB>'' psql-> WHERE version_num = ''<the missing migration>''; UPDATE 1

Si su base de datos se encuentra en un estado distinto al del archivo de migración <true state of DB> entonces continuará teniendo errores.