jacu
v1.0.2
Published
A tool for versioning database seed files
Downloads
19
Maintainers
Readme
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 mssql
Usage
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 init
The 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 seedName
This 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 run
Jacu 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 rollback
Note 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