миграция
This commit is contained in:
@@ -7,32 +7,25 @@ const Company = require('../models/Company');
|
||||
|
||||
const recreateTestUser = async () => {
|
||||
try {
|
||||
const mongoUri = process.env.MONGODB_URI || 'mongodb://localhost:27017/procurement_db';
|
||||
|
||||
console.log('\n🔄 Подключение к MongoDB...');
|
||||
await mongoose.connect(mongoUri, {
|
||||
useNewUrlParser: true,
|
||||
useUnifiedTopology: true,
|
||||
});
|
||||
console.log('✅ Подключено к MongoDB\n');
|
||||
console.log('[Migration] Processing test user creation...');
|
||||
|
||||
// Удалить старого тестового пользователя
|
||||
console.log('🗑️ Удаление старого тестового пользователя...');
|
||||
console.log('[Migration] Removing old test user...');
|
||||
const oldUser = await User.findOne({ email: 'admin@test-company.ru' });
|
||||
if (oldUser) {
|
||||
// Удалить связанную компанию
|
||||
if (oldUser.companyId) {
|
||||
await Company.findByIdAndDelete(oldUser.companyId);
|
||||
console.log(' ✓ Старая компания удалена');
|
||||
console.log('[Migration] ✓ Old company removed');
|
||||
}
|
||||
await User.findByIdAndDelete(oldUser._id);
|
||||
console.log(' ✓ Старый пользователь удален');
|
||||
console.log('[Migration] ✓ Old user removed');
|
||||
} else {
|
||||
console.log(' ℹ️ Старый пользователь не найден');
|
||||
console.log('[Migration] ℹ️ Old user not found');
|
||||
}
|
||||
|
||||
// Создать новую компанию с правильной кодировкой UTF-8
|
||||
console.log('\n🏢 Создание тестовой компании...');
|
||||
console.log('[Migration] Creating test company...');
|
||||
const company = await Company.create({
|
||||
fullName: 'ООО "Тестовая Компания"',
|
||||
inn: '1234567890',
|
||||
@@ -47,10 +40,10 @@ const recreateTestUser = async () => {
|
||||
reviewsCount: 10,
|
||||
dealsCount: 25,
|
||||
});
|
||||
console.log(' ✓ Компания создана:', company.fullName);
|
||||
console.log('[Migration] ✓ Company created:', company.fullName);
|
||||
|
||||
// Создать нового пользователя с правильной кодировкой UTF-8
|
||||
console.log('\n👤 Создание тестового пользователя...');
|
||||
console.log('[Migration] Creating test user...');
|
||||
const user = await User.create({
|
||||
email: 'admin@test-company.ru',
|
||||
password: 'SecurePass123!',
|
||||
@@ -60,24 +53,10 @@ const recreateTestUser = async () => {
|
||||
phone: '+7 (999) 123-45-67',
|
||||
companyId: company._id,
|
||||
});
|
||||
console.log(' ✓ Пользователь создан:', user.firstName, user.lastName);
|
||||
|
||||
// Проверка что данные сохранены правильно
|
||||
console.log('\n✅ Проверка данных:');
|
||||
console.log(' Email:', user.email);
|
||||
console.log(' Имя:', user.firstName);
|
||||
console.log(' Фамилия:', user.lastName);
|
||||
console.log(' Компания:', company.fullName);
|
||||
console.log(' Должность:', user.position);
|
||||
|
||||
console.log('\n✅ ГОТОВО! Тестовый пользователь создан с правильной кодировкой UTF-8');
|
||||
console.log('\n📋 Данные для входа:');
|
||||
console.log(' Email: admin@test-company.ru');
|
||||
console.log(' Пароль: SecurePass123!');
|
||||
console.log('');
|
||||
console.log('[Migration] ✓ User created:', user.firstName, user.lastName);
|
||||
|
||||
// Обновить существующие mock компании
|
||||
console.log('\n🔄 Обновление существующих mock компаний...');
|
||||
console.log('[Migration] Updating existing companies...');
|
||||
const updates = [
|
||||
{ inn: '7707083894', updates: { companySize: '51-250', partnerGeography: ['moscow', 'russia_all'] } },
|
||||
{ inn: '7707083895', updates: { companySize: '500+', partnerGeography: ['moscow', 'russia_all'] } },
|
||||
@@ -88,18 +67,33 @@ const recreateTestUser = async () => {
|
||||
|
||||
for (const item of updates) {
|
||||
await Company.updateOne({ inn: item.inn }, { $set: item.updates });
|
||||
console.log(` ✓ Компания обновлена: INN ${item.inn}`);
|
||||
console.log(`[Migration] ✓ Company updated: INN ${item.inn}`);
|
||||
}
|
||||
|
||||
await mongoose.connection.close();
|
||||
process.exit(0);
|
||||
console.log('[Migration] ✅ Test user migration completed!');
|
||||
} catch (error) {
|
||||
console.error('\n❌ Ошибка:', error.message);
|
||||
console.error(error);
|
||||
process.exit(1);
|
||||
console.error('[Migration] ❌ Error:', error.message);
|
||||
throw error;
|
||||
}
|
||||
};
|
||||
|
||||
// Запуск
|
||||
recreateTestUser();
|
||||
module.exports = { recreateTestUser };
|
||||
|
||||
// Run directly if called as script
|
||||
if (require.main === module) {
|
||||
const mongoUri = process.env.MONGODB_URI || 'mongodb://localhost:27017/procurement_db';
|
||||
|
||||
mongoose.connect(mongoUri, {
|
||||
useNewUrlParser: true,
|
||||
useUnifiedTopology: true,
|
||||
}).then(async () => {
|
||||
console.log('[Migration] Connected to MongoDB\n');
|
||||
await recreateTestUser();
|
||||
await mongoose.connection.close();
|
||||
process.exit(0);
|
||||
}).catch(err => {
|
||||
console.error('[Migration] ❌ Error:', err.message);
|
||||
process.exit(1);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user