jacu v1.0.2
A tool for versioning database seed files
Jacu is a tool aimed to provide versioning for seed files, much like as migrations do it for versioning schemas. Sometimes you find yourself in trouble when running your seeds because most tools do not provide a temporal seed creation and running - Jacu comes for the rescue!
Install
The primary target environment for Jacu is Node.js, you will need to install the jacu library, and then install the appropriate database library: pg for PostgreSQL, mysql for MySQL or MariaDB, sqlite3 for SQLite3, or mssql for MSSQL.
$ npm install jacu --save
# Then add one of the following (adding a --save) flag:
$ npm install pg
$ npm install sqlite3
$ npm install mysql
$ npm install mysql2
$ npm install mariasql
$ npm install strong-oracle
$ npm install oracle
$ npm install mssqlUsage
Initilization
You need a jacurc.js file in the root directory of your project in order to generate seeds. To create a standard one run
$ jacu initThe jacurc looks like the following
module.exports = {
client: 'pg',
table: 'jacu_seeds',
folder: 'seeds',
connections: {
development: {
host: 'localhost',
database: 'jacu_db',
user: 'user',
password: 'password'
},
test: {
host: 'localhost',
database: 'jacu_db',
user: 'user',
password: 'password'
}
}
};The keys for the connections object represent the NODE_ENV to be considered when running Jacu seeds.
Creating a seed
In order to create a seed run
$ jacu make seedNameThis will create a timestamped file on the folder provided in your jacurc.js file, much like Rails and KnexJS migrations do. The seed file is pretty straight-forward and looks like the following:
module.exports = function(jacu) {
return jacu('table_name', [
{ column: 'fakeData', date_column: (new Date()) }
]);
};Running seeds
To run your sets of seeds simply run
$ jacu runJacu will automatically identify which seeds were not run given the current NODE_ENV environment, and then will add them to the database. All seeds run together will count towards a same batch number.
Rolling back
Jacu allows you to remove tuples from your database by running
$ jacu rollbackNote that this command will erase every tuple present in the last batch. Also, in order to rollback to work properly, the the set of the attributes defined in the seed must be a superkey of the model and must contain only immutable data.
Trivia
Jacu is the name of a bird that lives in South America and eats coffee seeds.
License
MIT