Files
tilbudgivern/archive/scripts/run_prisbog_import.js
T
2025-10-30 18:28:58 +00:00

101 lines
3.8 KiB
JavaScript

/**
* Direct script to run Bygma Prisbog import
* This will import all 54,558 products from the CSV file
*/
const BygmaPrisbogImportService = require('./backend/src/services/bygmaPrisbogImportService');
const path = require('path');
const CSV_PATH = '/mnt/HC_Volume_103713257/tilbudgivern/frontend/firmadata/subvendor/bygma/PrisBog_FIXED.csv';
async function runImport() {
console.log('🚀 Starting Bygma Prisbog Import...\n');
console.log('📄 CSV File:', CSV_PATH);
console.log('⏰ Started at:', new Date().toLocaleString('da-DK'), '\n');
// Initialize database connection first
const databaseService = require('./backend/src/services/databaseService');
// Force IPv4 by using 127.0.0.1 instead of localhost
process.env.DB_HOST = '127.0.0.1';
try {
console.log('🔌 Initializing database connection...');
await databaseService.initialize();
console.log('✅ Database connected\n');
const importService = new BygmaPrisbogImportService();
console.log('📊 Import process started...');
console.log(' This will take several minutes for 54,000+ products\n');
const result = await importService.importPrisbog(CSV_PATH, 'manual_script');
console.log('\n' + '='.repeat(70));
console.log('✅ IMPORT COMPLETED SUCCESSFULLY!');
console.log('='.repeat(70));
console.log('\n📊 Import Statistics:');
console.log(' Batch ID:', result.batchId);
console.log(' Duration:', result.duration, 'seconds');
console.log(' Total rows:', result.stats.totalRows);
console.log(' Processed rows:', result.stats.processedRows);
console.log(' Successful rows:', result.stats.successfulRows);
console.log(' Failed rows:', result.stats.failedRows);
console.log('\n📦 Product Statistics:');
console.log(' ✨ New products:', result.stats.newProducts);
console.log(' 🔄 Updated products:', result.stats.updatedProducts);
console.log(' 💰 Price updates:', result.stats.updatedPrices);
console.log(' ⏸️ Deactivated products:', result.stats.deactivatedProducts);
if (result.warnings && result.warnings.length > 0) {
console.log('\n⚠️ Warnings:', result.warnings.length);
result.warnings.slice(0, 5).forEach((warning, i) => {
console.log(` ${i + 1}. ${warning.message}`);
});
}
if (result.errors && result.errors.length > 0) {
console.log('\n❌ Errors:', result.errors.length);
result.errors.slice(0, 5).forEach((error, i) => {
console.log(` ${i + 1}. Line ${error.line}: ${error.error}`);
});
}
console.log('\n✅ Import completed at:', new Date().toLocaleString('da-DK'));
// Verify product 118266
console.log('\n' + '='.repeat(70));
console.log('🔍 Verifying product 118266...');
console.log('='.repeat(70));
const product = await databaseService.query(
'SELECT * FROM bygma_products WHERE vareNr = ?',
['118266']
);
if (product.length > 0) {
console.log('✅ Product 118266 FOUND in database!');
console.log(' VareNr:', product[0].vareNr);
console.log(' Tekst:', product[0].tekst);
console.log(' Enhed:', product[0].enhed);
console.log(' Netto pris:', product[0].current_netto_pris);
console.log(' Brutto pris:', product[0].current_brutto_pris);
console.log(' Is active:', product[0].is_active);
} else {
console.log('❌ Product 118266 NOT FOUND in database');
}
await databaseService.close();
} catch (error) {
console.error('\n❌ IMPORT FAILED:', error.message);
console.error('Stack:', error.stack);
const databaseService = require('./backend/src/services/databaseService');
await databaseService.close();
process.exit(1);
}
}
runImport().catch(console.error);