- Enhanced condition processing in FalukantService to clamp values between 0 and 100, ensuring UI displays valid data. - Implemented database cleanup in syncDatabase utility to set NULL conditions to 100 and clamp out-of-range values, improving data integrity.
61 lines
1.8 KiB
JavaScript
61 lines
1.8 KiB
JavaScript
/* eslint-disable */
|
|
module.exports = {
|
|
async up(queryInterface, Sequelize) {
|
|
// Ensure column exists
|
|
await queryInterface.sequelize.query(`
|
|
ALTER TABLE falukant_data.vehicle
|
|
ADD COLUMN IF NOT EXISTS condition integer;
|
|
`);
|
|
|
|
// Backfill nulls (legacy data)
|
|
await queryInterface.sequelize.query(`
|
|
UPDATE falukant_data.vehicle
|
|
SET condition = 100
|
|
WHERE condition IS NULL;
|
|
`);
|
|
|
|
// Clamp out-of-range values defensively
|
|
await queryInterface.sequelize.query(`
|
|
UPDATE falukant_data.vehicle
|
|
SET condition = GREATEST(0, LEAST(100, condition))
|
|
WHERE condition < 0 OR condition > 100;
|
|
`);
|
|
|
|
// Default + NOT NULL
|
|
await queryInterface.sequelize.query(`
|
|
ALTER TABLE falukant_data.vehicle
|
|
ALTER COLUMN condition SET DEFAULT 100;
|
|
`);
|
|
await queryInterface.sequelize.query(`
|
|
ALTER TABLE falukant_data.vehicle
|
|
ALTER COLUMN condition SET NOT NULL;
|
|
`);
|
|
|
|
// Check constraint 0..100
|
|
await queryInterface.sequelize.query(`
|
|
ALTER TABLE falukant_data.vehicle
|
|
DROP CONSTRAINT IF EXISTS vehicle_condition_0_100_chk;
|
|
`);
|
|
await queryInterface.sequelize.query(`
|
|
ALTER TABLE falukant_data.vehicle
|
|
ADD CONSTRAINT vehicle_condition_0_100_chk
|
|
CHECK (condition >= 0 AND condition <= 100);
|
|
`);
|
|
},
|
|
|
|
async down(queryInterface, Sequelize) {
|
|
// Keep the column, but remove constraint/default to be reversible
|
|
await queryInterface.sequelize.query(`
|
|
ALTER TABLE falukant_data.vehicle
|
|
DROP CONSTRAINT IF EXISTS vehicle_condition_0_100_chk;
|
|
`);
|
|
await queryInterface.sequelize.query(`
|
|
ALTER TABLE falukant_data.vehicle
|
|
ALTER COLUMN condition DROP DEFAULT;
|
|
`);
|
|
// NOT NULL not reverted to avoid introducing NULLs on rollback; can be adjusted if needed
|
|
},
|
|
};
|
|
|
|
|