v1
This commit is contained in:
49
scripts/dump-db.js
Normal file
49
scripts/dump-db.js
Normal file
@@ -0,0 +1,49 @@
|
||||
const { MongoClient } = require('mongodb');
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
const MONGODB_URI = 'mongodb://localhost/beanstalk';
|
||||
const OUTPUT_DIR = path.join(__dirname, '../public/db');
|
||||
|
||||
async function dumpDatabase() {
|
||||
const client = new MongoClient(MONGODB_URI);
|
||||
|
||||
try {
|
||||
console.log('Connecting to MongoDB...');
|
||||
await client.connect();
|
||||
|
||||
const db = client.db();
|
||||
|
||||
// Create output directory if it doesn't exist
|
||||
if (!fs.existsSync(OUTPUT_DIR)) {
|
||||
fs.mkdirSync(OUTPUT_DIR, { recursive: true });
|
||||
}
|
||||
|
||||
console.log('Getting collections...');
|
||||
const collections = await db.listCollections().toArray();
|
||||
|
||||
for (const collection of collections) {
|
||||
const collectionName = collection.name;
|
||||
console.log(`Dumping collection: ${collectionName}`);
|
||||
|
||||
const data = await db.collection(collectionName).find({}).toArray();
|
||||
|
||||
// Write to JSON file
|
||||
const filePath = path.join(OUTPUT_DIR, `${collectionName}.json`);
|
||||
fs.writeFileSync(filePath, JSON.stringify(data, null, 2));
|
||||
|
||||
console.log(` ✓ ${data.length} documents saved to ${filePath}`);
|
||||
}
|
||||
|
||||
console.log('\nDatabase dump completed successfully!');
|
||||
console.log(`Output directory: ${OUTPUT_DIR}`);
|
||||
|
||||
} catch (error) {
|
||||
console.error('Error dumping database:', error);
|
||||
process.exit(1);
|
||||
} finally {
|
||||
await client.close();
|
||||
}
|
||||
}
|
||||
|
||||
dumpDatabase();
|
||||
Reference in New Issue
Block a user