appointment_system/backend/src/migrations/012-rename-pt-to-es.js

72 lines
2.7 KiB
JavaScript

/**
* Migration: Rename Portuguese (pt) fields to Spanish (es)
* 将葡萄牙语字段重命名为西班牙语字段
*/
const { sequelize } = require('../config/database');
async function up() {
const queryInterface = sequelize.getQueryInterface();
console.log('Starting migration: Rename pt fields to es...');
try {
// 1. Rename category table fields
console.log('Renaming category.name_pt to name_es...');
await queryInterface.renameColumn('category', 'name_pt', 'name_es');
// 2. Rename service table fields
console.log('Renaming service.title_pt to title_es...');
await queryInterface.renameColumn('service', 'title_pt', 'title_es');
console.log('Renaming service.description_pt to description_es...');
await queryInterface.renameColumn('service', 'description_pt', 'description_es');
// 3. Rename notification table fields
console.log('Renaming notification.title_pt to title_es...');
await queryInterface.renameColumn('notification', 'title_pt', 'title_es');
console.log('Renaming notification.content_pt to content_es...');
await queryInterface.renameColumn('notification', 'content_pt', 'content_es');
// 4. Rename hot_services table fields
console.log('Renaming hot_services.name_pt to name_es...');
await queryInterface.renameColumn('hot_services', 'name_pt', 'name_es');
// 5. Update user language preferences from 'pt' to 'es'
console.log('Updating user language preferences from pt to es...');
await sequelize.query("UPDATE `user` SET language = 'es' WHERE language = 'pt'");
console.log('Migration completed successfully!');
} catch (error) {
console.error('Migration failed:', error.message);
throw error;
}
}
async function down() {
const queryInterface = sequelize.getQueryInterface();
console.log('Starting rollback: Rename es fields back to pt...');
try {
// Reverse all the renames
await queryInterface.renameColumn('category', 'name_es', 'name_pt');
await queryInterface.renameColumn('service', 'title_es', 'title_pt');
await queryInterface.renameColumn('service', 'description_es', 'description_pt');
await queryInterface.renameColumn('notification', 'title_es', 'title_pt');
await queryInterface.renameColumn('notification', 'content_es', 'content_pt');
await queryInterface.renameColumn('hot_services', 'name_es', 'name_pt');
// Revert user language preferences
await sequelize.query("UPDATE `user` SET language = 'pt' WHERE language = 'es'");
console.log('Rollback completed successfully!');
} catch (error) {
console.error('Rollback failed:', error.message);
throw error;
}
}
module.exports = { up, down };