File size: 1,068 Bytes
3ab344a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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();