64 lines
2.0 KiB
JavaScript
64 lines
2.0 KiB
JavaScript
const { Sequelize } = require('sequelize');
|
||
const path = require('path');
|
||
|
||
// 数据库文件路径
|
||
const dbPath = path.join(__dirname, 'data/cashier.db');
|
||
|
||
console.log('Checking database at:', dbPath);
|
||
|
||
// 创建Sequelize实例
|
||
const sequelize = new Sequelize({
|
||
dialect: 'sqlite',
|
||
storage: dbPath,
|
||
logging: false
|
||
});
|
||
|
||
async function checkDatabase() {
|
||
try {
|
||
// 验证连接
|
||
await sequelize.authenticate();
|
||
console.log('Connection has been established successfully.');
|
||
|
||
// 查询所有表
|
||
const [results] = await sequelize.query("SELECT name FROM sqlite_master WHERE type='table'");
|
||
console.log('Tables in database:', results);
|
||
|
||
// 检查各个表是否存在
|
||
const tableNames = results.map(table => table.name);
|
||
const requiredTables = ['products', 'categories', 'orders', 'order_items', 'cashiers', 'settings'];
|
||
|
||
console.log('\nChecking required tables:');
|
||
for (const table of requiredTables) {
|
||
if (tableNames.includes(table)) {
|
||
console.log(`✓ ${table} table exists`);
|
||
// 查询表中的记录数
|
||
try {
|
||
const [countResult] = await sequelize.query(`SELECT COUNT(*) as count FROM ${table}`);
|
||
console.log(` - Record count: ${countResult[0].count}`);
|
||
} catch (err) {
|
||
console.log(` - Error getting count: ${err.message}`);
|
||
}
|
||
} else {
|
||
console.log(`✗ ${table} table missing`);
|
||
}
|
||
}
|
||
|
||
// 如果有products表,查询其中的示例数据
|
||
const productsTable = results.find(table => table.name === 'products');
|
||
if (productsTable) {
|
||
console.log('\nSample products:');
|
||
try {
|
||
const [products] = await sequelize.query("SELECT id, barcode, name, price, stock FROM products LIMIT 5");
|
||
console.log(products);
|
||
} catch (err) {
|
||
console.log('Error getting sample products:', err.message);
|
||
}
|
||
}
|
||
|
||
await sequelize.close();
|
||
} catch (error) {
|
||
console.error('Error checking database:', error);
|
||
}
|
||
}
|
||
|
||
checkDatabase(); |