Node.js y Sequelize ORM: mantienen el historial de ejecución de datos de inicialización
Hola lectores, me gustaría compartir la implementación sobre el mantenimiento del historial de ejecución de datos semilla mientras se usa Sequelize ORM.
¿Por qué el historial de ejecución de datos de semillas? ¿Por qué no el historial de ejecución de la migración?
La respuesta a eso se cita en la documentación de Sequelize en la sección Running Seeds.
El historial de ejecución de la sembradora no se almacena en ningún lugar, a diferencia de las migraciones, que utilizan la tabla
SequelizeMeta
.
Usaremos lo siguiente en nuestro proyecto:
- Node.js (14.17.6)
- Marco expreso (4.17.1)
- Sequelizar ORM (6.6.5)
- Sequelizar CLI (6.2.0)
- Base de datos PostgreSQL (14.1)
Es posible que no necesite todas las cosas mencionadas. Una tabla llamada Todos sería suficiente.
Una vez que estemos listos con una tabla Todos, navegue al archivo ./server/config/config.json y actualice las credenciales de la base de datos y agregue la propiedad seederStorage establecida en json.
Simplemente por conveniencia, limitamos la propiedad de seederStorage. Podemos usar seederStoragePath para almacenar el historial de ejecución de datos semilla en un archivo json o usar seederStorageTableName para almacenar el historial de ejecución de datos semilla en una tabla de base de datos.
Luego crea un archivo semilla usando el siguiente comando en la terminal:
sequelize seed:generate --name create-a-todo
Y actualice el siguiente bloque de código:
module.exports = { up: async (queryInterface, Sequelize) => { await queryInterface.bulkInsert('Todos', [ { title: 'Create a blog', createdAt: new Date(), updatedAt: new Date() } ]); }, down: async (queryInterface, Sequelize) => { await queryInterface.bulkDelete('Todos', null); }};
Ahora para ejecutar la sembradora, escriba en la terminal como:
sequelize db:seed:all
Esto ejecutará la sembradora para crear un registro en la tabla Todos y se generará automáticamente un nuevo archivo llamado sequelize-data.json en la raíz del proyecto para realizar un seguimiento de todo el historial de ejecución de las sembradoras.
Si intentamos ejecutar la sembradora nuevamente, se mostrará como sigue:
No seeders found.
¡Gracias por leer!