Spaces:
Running
Running
| 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(); | |