50 lines
1020 B
JavaScript
50 lines
1020 B
JavaScript
const sqlite3 = require('sqlite3').verbose();
|
|
|
|
const sqliteFile = 'sqlite.db';
|
|
|
|
function getTables() {
|
|
return new Promise((resolve, reject) => {
|
|
const db = new sqlite3.Database(sqliteFile);
|
|
|
|
db.all("SELECT name FROM sqlite_master WHERE type='table' ORDER BY name ASC", (err, tables) => {
|
|
if (err)
|
|
reject(err);
|
|
else
|
|
resolve(tables.map(r => r.name).sort((a, b) => a.localeCompare(b)));
|
|
});
|
|
|
|
db.close();
|
|
});
|
|
};
|
|
|
|
function getColumns(tableName) {
|
|
return new Promise((resolve, reject) => {
|
|
const db = new sqlite3.Database(sqliteFile);
|
|
|
|
db.all(`SELECT COUNT(*) NUM FROM ${tableName}`, (err, columns) => {
|
|
if (err)
|
|
reject(err);
|
|
else
|
|
resolve(columns[0].num);
|
|
});
|
|
|
|
db.close();
|
|
});
|
|
}
|
|
|
|
async function run() {
|
|
try {
|
|
const tables = await getTables();
|
|
|
|
for (const table of tables) {
|
|
const columns = await getColumns(table);
|
|
if (columns > 50000)
|
|
console.log(table + '.' + columns);
|
|
}
|
|
} catch (err) {
|
|
console.error(err);
|
|
}
|
|
}
|
|
|
|
run();
|