Estoy luchando con un problema relacionado con las migraciones en knex en el entorno de producción (heroku). Hice algunos cambios y creé 8 nuevas migraciones para actualizar el modelo. Después de crear nuevas migraciones he llegado a 47 archivos de migración. Después de cargar los cambios en Heroku, ejecuté como de costumbre knex migrate:latest y no hubo ningún efecto. Recibí el mensaje Already up to date .
Decidí echar un vistazo a la tabla knex_migrations para ver si tal vez algo anda mal allí. El resultado es que puedo ver que las nuevas migraciones no se escribieron en esa base de datos (consulte la imagen como referencia.
Cuando echamos un vistazo a las migraciones se ve así:
Claramente podemos ver que knex pudo ejecutar "20200216191040_receiver_company.js" como último.
Cuando miro la tabla knex_migrations_lock , la única entrada que existe allí se ve así:
¿Alguien sabe cómo obligar a knex a ejecutar las migraciones? La versión de knex que uso es la 0.16.3 .
EDITAR:
Quiero agregar que en la máquina local no tengo problemas para ejecutar las migraciones. Además, verifiqué si los archivos de migración están presentes en el servidor y, después de extraer el estado actual de Heroku, puedo ver todos los archivos de migración que no se ejecutaron.
Si el cambio de la migración no se implementa en la base de datos, puede intentar eliminar manualmente el registro de la migración de knex_migrations o de la tabla de migraciones e intentar volver a aplicar el knex migrate:latest .
pero antes de intentarlo de esta manera, asegúrese de mantener una copia de seguridad o ejecútela primero en su máquina local o servidor de desarrollo.