123 lines
4.3 KiB
JavaScript
123 lines
4.3 KiB
JavaScript
/**
|
|
* Safe migration script - checks if columns exist before renaming
|
|
*/
|
|
const { sequelize } = require('./src/config/database');
|
|
|
|
async function runMigration() {
|
|
try {
|
|
console.log('Connecting to database...');
|
|
await sequelize.authenticate();
|
|
console.log('Connected successfully!\n');
|
|
|
|
// Check and rename hot_services.name_pt to name_es
|
|
console.log('Checking hot_services table...');
|
|
const [hotServiceCols] = await sequelize.query(
|
|
"SHOW COLUMNS FROM `hot_services` LIKE 'name_pt'"
|
|
);
|
|
|
|
if (hotServiceCols.length > 0) {
|
|
console.log('Renaming hot_services.name_pt to name_es...');
|
|
await sequelize.query(
|
|
"ALTER TABLE `hot_services` CHANGE COLUMN `name_pt` `name_es` VARCHAR(100) NOT NULL"
|
|
);
|
|
console.log('✓ hot_services.name_pt renamed to name_es');
|
|
} else {
|
|
console.log('✓ hot_services.name_es already exists, skipping...');
|
|
}
|
|
|
|
// Check and rename category.name_pt to name_es
|
|
console.log('\nChecking category table...');
|
|
const [categoryCols] = await sequelize.query(
|
|
"SHOW COLUMNS FROM `category` LIKE 'name_pt'"
|
|
);
|
|
|
|
if (categoryCols.length > 0) {
|
|
console.log('Renaming category.name_pt to name_es...');
|
|
await sequelize.query(
|
|
"ALTER TABLE `category` CHANGE COLUMN `name_pt` `name_es` VARCHAR(100) NOT NULL"
|
|
);
|
|
console.log('✓ category.name_pt renamed to name_es');
|
|
} else {
|
|
console.log('✓ category.name_es already exists, skipping...');
|
|
}
|
|
|
|
// Check and rename service.title_pt and description_pt
|
|
console.log('\nChecking service table...');
|
|
const [serviceTitleCols] = await sequelize.query(
|
|
"SHOW COLUMNS FROM `service` LIKE 'title_pt'"
|
|
);
|
|
|
|
if (serviceTitleCols.length > 0) {
|
|
console.log('Renaming service.title_pt to title_es...');
|
|
await sequelize.query(
|
|
"ALTER TABLE `service` CHANGE COLUMN `title_pt` `title_es` VARCHAR(200) NOT NULL"
|
|
);
|
|
console.log('✓ service.title_pt renamed to title_es');
|
|
} else {
|
|
console.log('✓ service.title_es already exists, skipping...');
|
|
}
|
|
|
|
const [serviceDescCols] = await sequelize.query(
|
|
"SHOW COLUMNS FROM `service` LIKE 'description_pt'"
|
|
);
|
|
|
|
if (serviceDescCols.length > 0) {
|
|
console.log('Renaming service.description_pt to description_es...');
|
|
await sequelize.query(
|
|
"ALTER TABLE `service` CHANGE COLUMN `description_pt` `description_es` TEXT"
|
|
);
|
|
console.log('✓ service.description_pt renamed to description_es');
|
|
} else {
|
|
console.log('✓ service.description_es already exists, skipping...');
|
|
}
|
|
|
|
// Check and rename notification fields
|
|
console.log('\nChecking notification table...');
|
|
const [notifTitleCols] = await sequelize.query(
|
|
"SHOW COLUMNS FROM `notification` LIKE 'title_pt'"
|
|
);
|
|
|
|
if (notifTitleCols.length > 0) {
|
|
console.log('Renaming notification.title_pt to title_es...');
|
|
await sequelize.query(
|
|
"ALTER TABLE `notification` CHANGE COLUMN `title_pt` `title_es` VARCHAR(200) NOT NULL"
|
|
);
|
|
console.log('✓ notification.title_pt renamed to title_es');
|
|
} else {
|
|
console.log('✓ notification.title_es already exists, skipping...');
|
|
}
|
|
|
|
const [notifContentCols] = await sequelize.query(
|
|
"SHOW COLUMNS FROM `notification` LIKE 'content_pt'"
|
|
);
|
|
|
|
if (notifContentCols.length > 0) {
|
|
console.log('Renaming notification.content_pt to content_es...');
|
|
await sequelize.query(
|
|
"ALTER TABLE `notification` CHANGE COLUMN `content_pt` `content_es` TEXT"
|
|
);
|
|
console.log('✓ notification.content_pt renamed to content_es');
|
|
} else {
|
|
console.log('✓ notification.content_es already exists, skipping...');
|
|
}
|
|
|
|
// Update user language preferences
|
|
console.log('\nUpdating user language preferences...');
|
|
const [result] = await sequelize.query(
|
|
"UPDATE `user` SET language = 'es' WHERE language = 'pt'"
|
|
);
|
|
console.log(`✓ Updated ${result.affectedRows || 0} users from 'pt' to 'es'`);
|
|
|
|
console.log('\n========================================');
|
|
console.log('Migration completed successfully!');
|
|
console.log('========================================');
|
|
|
|
process.exit(0);
|
|
} catch (error) {
|
|
console.error('\nMigration failed:', error.message);
|
|
process.exit(1);
|
|
}
|
|
}
|
|
|
|
runMigration();
|