samoulla-backend / migrateOrderNumbers.js
Samoulla Sync Bot
Auto-deploy Samoulla Backend: b68e45770de26ed39feb4b1c0925e5345eb3a61d
634b9bb
const mongoose = require('mongoose');
const Order = require('./models/orderModel');
const Counter = require('./models/counterModel');
require('dotenv').config({ path: './config.env' });
const migrate = async () => {
try {
const dbUrl = process.env.DATABASE.replace('<PASSWORD>', process.env.DATABASE_PASSWORD);
await mongoose.connect(dbUrl);
console.log('DB connected');
const orders = await Order.find({ orderNumber: { $exists: false } }).sort({ createdAt: 1 });
console.log(`Found ${orders.length} orders to migrate`);
let count = 0;
for (const order of orders) {
count++;
order.orderNumber = count;
await order.save();
}
// Initialize counter
await Counter.findOneAndUpdate(
{ id: 'orderNumber' },
{ seq: count },
{ upsert: true }
);
console.log('Migration complete');
process.exit(0);
} catch (err) {
console.error(err);
process.exit(1);
}
};
migrate();