/** * Import tractatus-framework-research document from JSON file */ const { MongoClient } = require('mongodb'); const fs = require('fs'); require('dotenv').config({ path: '/var/www/tractatus/.env' }); async function run() { console.log('═══════════════════════════════════════════════════════════'); console.log(' IMPORTING RESEARCH DOCUMENT TO PRODUCTION'); console.log('═══════════════════════════════════════════════════════════\n'); // Read JSON file const doc = JSON.parse(fs.readFileSync('/tmp/tractatus-framework-research.json', 'utf8')); console.log(`📄 Loaded: ${doc.title}`); console.log(` Slug: ${doc.slug}`); console.log(` Category: ${doc.category}`); console.log(` Order: ${doc.order}`); console.log(` Sections: ${doc.sections?.length || 0}\n`); // Connect to production const MONGODB_URI = process.env.MONGODB_URI || 'mongodb://localhost:27017'; const DB_NAME = process.env.MONGODB_DB || 'tractatus_prod'; console.log(`Database: ${DB_NAME}`); console.log(`URI: ${MONGODB_URI.replace(/:[^:]*@/, ':***@')}\n`); const client = new MongoClient(MONGODB_URI); await client.connect(); const db = client.db(DB_NAME); const collection = db.collection('documents'); // Check if exists const existing = await collection.findOne({ slug: doc.slug }); if (existing) { console.log('⚠️ Document already exists - replacing...\n'); const result = await collection.replaceOne( { slug: doc.slug }, doc ); console.log(`✅ Replaced: ${result.modifiedCount} document(s)`); } else { console.log('📝 Inserting new document...\n'); const result = await collection.insertOne(doc); console.log(`✅ Inserted with ID: ${result.insertedId}`); } // Verify const verification = await collection.findOne( { slug: doc.slug }, { projection: { title: 1, category: 1, order: 1, visibility: 1 } } ); console.log('\n🔍 Verification:'); console.log(JSON.stringify(verification, null, 2)); await client.close(); console.log('\n═══════════════════════════════════════════════════════════'); console.log(' IMPORT COMPLETE'); console.log('═══════════════════════════════════════════════════════════\n'); } run().catch(console.error);