npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

jacu

v1.0.2

Published

A tool for versioning database seed files

Downloads

19

Readme

Build Status Coverage Status Code Climate npm version

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