time-tracking-eltex/backend/migrations/20251013142313-add-auto-time-fields-to-time-entry.js

112 lines
3.0 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"use strict";
/** @type {import('sequelize-cli').Migration} */
module.exports = {
async up(queryInterface, Sequelize) {
// Добавляем колонки по одной с обработкой ошибок
try {
await queryInterface.addColumn("TimeEntries", "startDate", {
type: Sequelize.DATE,
allowNull: true,
defaultValue: null,
});
console.log("Added startDate column");
} catch (error) {
console.log(
"startDate column might already exist or error:",
error.message
);
}
try {
await queryInterface.addColumn("TimeEntries", "endDate", {
type: Sequelize.DATE,
allowNull: true,
defaultValue: null,
});
console.log("Added endDate column");
} catch (error) {
console.log(
"endDate column might already exist or error:",
error.message
);
}
try {
await queryInterface.addColumn("TimeEntries", "startTime", {
type: Sequelize.TIME,
allowNull: true,
defaultValue: null,
});
console.log("Added startTime column");
} catch (error) {
console.log(
"startTime column might already exist or error:",
error.message
);
}
try {
await queryInterface.addColumn("TimeEntries", "endTime", {
type: Sequelize.TIME,
allowNull: true,
defaultValue: null,
});
console.log("Added endTime column");
} catch (error) {
console.log(
"endTime column might already exist or error:",
error.message
);
}
try {
await queryInterface.addColumn("TimeEntries", "status", {
type: Sequelize.ENUM("active", "closed"),
defaultValue: "closed",
allowNull: false,
});
console.log("Added status column");
} catch (error) {
console.log("status column might already exist or error:", error.message);
}
},
async down(queryInterface, Sequelize) {
try {
await queryInterface.removeColumn("TimeEntries", "startDate");
console.log("Removed startDate column");
} catch (error) {
console.log("Error removing startDate:", error.message);
}
try {
await queryInterface.removeColumn("TimeEntries", "endDate");
console.log("Removed endDate column");
} catch (error) {
console.log("Error removing endDate:", error.message);
}
try {
await queryInterface.removeColumn("TimeEntries", "startTime");
console.log("Removed startTime column");
} catch (error) {
console.log("Error removing startTime:", error.message);
}
try {
await queryInterface.removeColumn("TimeEntries", "endTime");
console.log("Removed endTime column");
} catch (error) {
console.log("Error removing endTime:", error.message);
}
try {
await queryInterface.removeColumn("TimeEntries", "status");
console.log("Removed status column");
} catch (error) {
console.log("Error removing status:", error.message);
}
},
};