db-info is a utility module which provides a database independent way of getting database metadata.
The following databases are currently supported:
- sqlite3 - via: node-sqlite3
- mysql - via: node-mysql
- PostgreSQL - via: node-postgres
- Oracle - via: node-oracle
var dbinfo = require("db-info");
dbinfo.getInfo({
driver: 'mysql',
user: 'root',
password: 'root',
database: 'test'
}, function(err, result) {
/* result = {
tables: {
person: {
name: 'person',
columns: {
'id': { name: 'id', notNull: true, primaryKey: true, type: 'integer', length: '11' },
'name': { name: 'name', notNull: true, type: 'varchar', length: '255' },
'email': { name: 'email', notNull: false, type: 'varchar', length: '100' },
'age': { name: 'age', notNull: false, type: 'integer', length: '11' }
}
}
}
} */
});
You can install using Node Package Manager (npm):
npm install async
db-info --driver=pg --connectionString=--connectionString=tcp://test:test@localhost/test
Gets the metadata from a database.
Arguments
- opts - A hash of options.
- driver - can be either "mysql", "sqlite3", "db-oracle", or "pg" (PostgreSQL)
- db - if db is passed in this connection will be used instead of making a new connection.
- other - will be passed to the drivers connect.
- callback(err, result) - Callback called once complete. result will contain a hash containing all the tables along with column information.
Example
var db = new sqlite3.Database(':memory:');
dbinfo.getInfo({
driver: 'sqlite3',
db: db
}, function(err, result) {
});