@wavequery/analyser
v0.0.471
Published
Database analyser and visualiser
Maintainers
Readme
WaveQuery Database Analyser
🚀 Features
- Support for major databases:
- PostgreSQL
- Clickhouse
- MariaDB
- BigQuery
- MySQL
- SQLite
- Comprehensive schema analysis
- Interactive visualization using D3.js
- Smart relationship detection
- Junction table identification
- Stored procedures and views analysis
- Manual relationship mapping
- Schema export as JSON
🎮 Try it Live
Experience WaveQuery Database Analyser instantly at WaveQuery Playground:
- Explore sample database schemas
- Test with live databases
- Visualize complex relationships
- No setup required
Installation
npm install @wavequery/analyserUsage
CLI
To analyze a database and start the visualization server:
npx @wavequery/analyser -t <database_type> -h <host> -p <port> -u <username> -P <password> -d <database_name> -s -o /path/to/somewhere/Options:
-t, --type: Database type (postgres, mariadb, sqlite)-h, --host: Database host-p, --port: Database port-u, --user: Database user-P, --password: Database password-d, --database: Database name-f, --file: SQLite database file path (for SQLite only)-o, --output <path>, Path to export the JSON file-s, --serve: Start the visualization server after analysis--debug: Enable debug logging
Example:
npx @wavequery/analyser -t postgres -h localhost -p 5432 -u myuser -P mypassword -d mydb -sAfter running the command, open a web browser and navigate to the URL provided in the console output to view the schema visualization.
As a Library
You can also use DB Schema Finder as a library in your own projects. Here's a basic example:
import { analyzeDatabase } from '@wavequery/analyser';
import { PostgresConnector } from '@wavequery/analyser';
async function runAnalysis() {
const connector = new PostgresConnector({
host: 'localhost',
port: 5432,
user: 'myuser',
password: 'mypassword',
database: 'mydb'
});
try {
const result = await analyzeDatabase({connector, exportData});
console.log(JSON.stringify(result, null, 2));
} catch (error) {
console.error('Analysis failed:', error);
}
}
runAnalysis();Contributing
Feel free to submit a Pull Request.
License
This project is licensed under the MIT License.
