48 lines
1.5 KiB
JavaScript
48 lines
1.5 KiB
JavaScript
const { Client } = require('pg');
|
|
|
|
async function inspect() {
|
|
require('dotenv').config({ path: '../.env' });
|
|
const client = new Client({
|
|
host: process.env.DB_HOST,
|
|
port: process.env.DB_PORT,
|
|
user: process.env.DB_USER,
|
|
password: process.env.DB_PASSWORD,
|
|
database: process.env.DB_NAME
|
|
});
|
|
|
|
try {
|
|
await client.connect();
|
|
const tables = [
|
|
'geodaten.flaecheneigentuemer_alkis',
|
|
'geodaten.flaecheneigentuemer_alkis_zuweisung',
|
|
'geodaten.flaecheneigentuemer_status'
|
|
];
|
|
|
|
for (const table of tables) {
|
|
const [schema, name] = table.split('.');
|
|
console.log(`\n--- Structure of ${table} ---`);
|
|
const res = await client.query(`
|
|
SELECT column_name, data_type, is_nullable
|
|
FROM information_schema.columns
|
|
WHERE table_schema = $1 AND table_name = $2
|
|
ORDER BY ordinal_position;
|
|
`, [schema, name]);
|
|
res.rows.forEach(r => console.log(`${r.column_name}: ${r.data_type} (${r.is_nullable})`));
|
|
}
|
|
|
|
console.log(`\n--- Views in geodaten ---`);
|
|
const viewsRes = await client.query(`
|
|
SELECT table_name
|
|
FROM information_schema.views
|
|
WHERE table_schema = 'geodaten';
|
|
`);
|
|
viewsRes.rows.forEach(r => console.log(r.table_name));
|
|
|
|
} catch (e) {
|
|
console.error("Error:", e);
|
|
} finally {
|
|
await client.end();
|
|
}
|
|
}
|
|
inspect();
|