tududi/backend/migrations/20250623000001-add-uuid-to-tasks.js
Antonis Anastasiadis e594d1075b
Linting cleanup (#99)
* Add eslint and prettier dependencies and configs

* Lint project.
2025-07-01 11:40:09 +03:00

41 lines
1.2 KiB
JavaScript

'use strict';
const { v4: uuidv4 } = require('uuid');
module.exports = {
async up(queryInterface, Sequelize) {
// Add UUID column to tasks table (without unique constraint initially)
await queryInterface.addColumn('tasks', 'uuid', {
type: Sequelize.UUID,
allowNull: true,
});
// Backfill existing tasks with UUIDs
const tasks = await queryInterface.sequelize.query(
'SELECT id FROM tasks WHERE uuid IS NULL',
{ type: Sequelize.QueryTypes.SELECT }
);
for (const task of tasks) {
const uuid = uuidv4();
await queryInterface.sequelize.query(
'UPDATE tasks SET uuid = ? WHERE id = ?',
{ replacements: [uuid, task.id] }
);
}
// Add unique index for UUID
await queryInterface.addIndex('tasks', ['uuid'], {
unique: true,
name: 'tasks_uuid_unique',
});
},
async down(queryInterface, Sequelize) {
// Remove index first
await queryInterface.removeIndex('tasks', 'tasks_uuid_unique');
// Remove UUID column
await queryInterface.removeColumn('tasks', 'uuid');
},
};