other
This commit is contained in:
55
backend/utils/disableStockTracking.js
Normal file
55
backend/utils/disableStockTracking.js
Normal file
@@ -0,0 +1,55 @@
|
||||
import mongoose from 'mongoose';
|
||||
import dotenv from 'dotenv';
|
||||
import Product from '../models/Product.model.js';
|
||||
import logger from './logger.js';
|
||||
|
||||
// Load environment variables
|
||||
dotenv.config();
|
||||
|
||||
// Connect to MongoDB
|
||||
mongoose.connect(process.env.MONGO_URI)
|
||||
.then(() => logger.info('MongoDB connected'))
|
||||
.catch(err => {
|
||||
logger.error('MongoDB connection error:', err);
|
||||
process.exit(1);
|
||||
});
|
||||
|
||||
async function disableStockTrackingForAllProducts() {
|
||||
try {
|
||||
logger.info('Disabling stock tracking for all products...');
|
||||
|
||||
const result = await Product.updateMany(
|
||||
{}, // Empty filter matches all documents
|
||||
{
|
||||
stockTracking: false,
|
||||
stockStatus: "in_stock" // Set a default status
|
||||
}
|
||||
);
|
||||
|
||||
logger.info(`Stock tracking disabled for ${result.modifiedCount} products out of ${result.matchedCount} total products`);
|
||||
|
||||
return result;
|
||||
} catch (error) {
|
||||
logger.error('Error disabling stock tracking:', error);
|
||||
throw error;
|
||||
} finally {
|
||||
// Close database connection
|
||||
mongoose.connection.close();
|
||||
logger.info('Database connection closed');
|
||||
}
|
||||
}
|
||||
|
||||
// Execute the function if this script is run directly
|
||||
if (process.argv[1].includes('disableStockTracking.js')) {
|
||||
disableStockTrackingForAllProducts()
|
||||
.then(() => {
|
||||
logger.info('Script completed successfully');
|
||||
process.exit(0);
|
||||
})
|
||||
.catch(err => {
|
||||
logger.error('Script failed:', err);
|
||||
process.exit(1);
|
||||
});
|
||||
}
|
||||
|
||||
export default disableStockTrackingForAllProducts;
|
||||
Reference in New Issue
Block a user