72 lines
2.7 KiB
JavaScript
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 };
|