46 lines
1.2 KiB
JavaScript
46 lines
1.2 KiB
JavaScript
const path = require('path');
|
|
require('dotenv').config({ path: path.join(__dirname, '../.env') });
|
|
const db = require('../db');
|
|
|
|
async function listSchema() {
|
|
try {
|
|
const res = await db.query(`
|
|
SELECT
|
|
table_name,
|
|
column_name,
|
|
data_type,
|
|
is_nullable
|
|
FROM
|
|
information_schema.columns
|
|
WHERE
|
|
table_schema = 'public'
|
|
ORDER BY
|
|
table_name, ordinal_position
|
|
`);
|
|
|
|
const tables = {};
|
|
res.rows.forEach(row => {
|
|
if (!tables[row.table_name]) {
|
|
tables[row.table_name] = [];
|
|
}
|
|
tables[row.table_name].push({
|
|
column: row.column_name,
|
|
type: row.data_type,
|
|
nullable: row.is_nullable
|
|
});
|
|
});
|
|
|
|
console.log('--- 数据库全量表结构 ---');
|
|
for (const [tableName, columns] of Object.entries(tables)) {
|
|
console.log(`\n表名: ${tableName}`);
|
|
console.table(columns);
|
|
}
|
|
} catch (err) {
|
|
console.error('查询失败:', err);
|
|
} finally {
|
|
process.exit();
|
|
}
|
|
}
|
|
|
|
listSchema();
|