
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
rethinkdb-init
Advanced tools
Create all RethinkDB databases, tables and indexes automatically through a schema object
Create all RethinkDB databases, tables and indexes automatically through a schema object.
Often times, application code that uses RethinkDB has a significant portion of code meant for creating the database, tables and indexes example. This module is meant so that you can pass an object with the required initial state of your database and get a promise/callback for when all the necesary componentes have been added to the database. This removes a lot of boilerplate code from your application code and makes it easier to understand what is needed in the database to run the application.
The first argument is a connection object with host, port, and db. If the db doesn’t exist, it will be created automatically.
The second argument is an array of tables. Each table can either be a string or an object. If the entry is an object, it must have a name property.
var r = require('rethinkdb');
require('rethinkdb-init')(r);
r.init({
host: 'localhost',
port: 28015,
db: 'superDatabase'
}, [
{
name: 'person',
indexes: ['firstName', 'lastName']
},
'address'
]
})
.then(function (conn) {
// All tables and indexes have been created
});
When the array contains a string, a table will be added with that name.
var r = require('rethinkdb');
require('rethinkdb-init')(r);
r.init({
host: 'localhost',
port: 28015,
db: 'helloDatabase'
},
[
'hello_table',
'another_table',
'yet_another_table',
'one_last_table',
]
})
.then(function (conn) {
// All tables and indexes have been created
});
Table objects can contain indexes (which can also be strings or objects).
var r = require('rethinkdb');
require('rethinkdb-init')(r);
r.init({
host: 'localhost',
port: 28015,
db: 'helloDatabase'
},
[
{
name: 'helloTable',
indexes: ['superIndex', 'superDuperIndex']
},
'anotherTable'
]
})
.then(function (conn) {
// All tables and indexes have been created
});
You can add a geo or multi attribute along with an index and it will be passed along to the indexCreate function.
var r = require('rethinkdb');
require('rethinkdb-init')(r);
r.init({
host: 'localhost',
port: 28015,
db: 'helloDatabase'
},
[
{
name: 'helloTable',
indexes: [{
name: 'location',
geo: true,
}]
},
]
})
.then(function (conn) {
// All tables and indexes have been created
});
var r = require('rethinkdb');
require('rethinkdb-init')(r);
r.init({
host: 'localhost',
port: 28015,
db: 'helloDatabase'
},
[
{
name: 'helloTable',
indexes: [{
name: 'location',
geo: true,
multi: true,
}]
},
]
})
.then(function (conn) {
// All tables and indexes have been created
});
You can add a indexFunction attribute along with an index and it will be passed along to the indexCreate function.
var r = require('rethinkdb');
require('rethinkdb-init')(r);
r.init({
host: 'localhost',
port: 28015,
db: 'helloDatabase'
},
[
{
name: 'helloTable',
indexes: [{
name: 'has_location',
indexFunction: function (row) {
return row.hasFields('location');
},
}]
},
]
})
.then(function (conn) {
// All tables and indexes have been created
});
You can pass a primaryKey, durability, replicas, or shards attribute to a table and it will be passed along to the tableCreate function.
var r = require('rethinkdb');
require('rethinkdb-init')(r);
r.init({
host: 'localhost',
port: 28015,
db: 'helloDatabase'
},
[
{
name: 'helloTable',
primaryKey: 'location',
durability: 'soft'
replicas: 2,
shards: 2
},
]
})
.then(function (conn) {
// All tables and indexes have been created
});
FAQs
Create all RethinkDB databases, tables and indexes automatically through a schema object
The npm package rethinkdb-init receives a total of 10 weekly downloads. As such, rethinkdb-init popularity was classified as not popular.
We found that rethinkdb-init demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.