sqin
Command-line utilities for database change management, inspired by Sqitch and aiming to keep compatibility with it where applicable.
NOTE: This program is in a very rough state. You probably want Sqitch itself for anything serious. At this point
sqin
is mainly a placeholder built around my specific need forsqin resolve
, which pulls and concatenates SQL deploy script dependencies into one large script.
Installation
Download node at nodejs.org and install it, if you haven't already.
npm install -g sqin
Supported commands
sqin resolve
sqin resolve [scripts...]
Concatenate the SQL scripts
and all their dependencies to stdout, such that each script is preceded by its dependencies. Dependencies are specified in SQL comments much like the ones sqitch add
puts in deploy scripts:
-- requires: other-script BEGIN;-- etc... COMMIT;
Thus if you have a deploy
folder with a separate SQL script for each database entity (like you would have when using Sqitch), you can create a complete deploy script using something similar to:
sqin resolve deploy/*.sql > deploy-from-scratch.sql
Dependencies
- babel-runtime: babel selfContained runtime
- depres: Dependency graph resolution
- glob: a little globber
- mz: modernize node.js to current ECMAScript standards
- nopt: Option parsing for Node, supporting types, shorthands, etc. Used by npm.
- rx: Library for composing asynchronous and event-based operations in JavaScript
Dev Dependencies
- babel-eslint: babel-eslint allows you to lint ALL valid Babel code with the fantastic ESLint.
- eslint: An AST-based pattern checker for JavaScript.
- grunt: The JavaScript Task Runner
- grunt-babel: Turn ES6 code into vanilla ES5 with no runtime required
- grunt-contrib-watch: Run predefined tasks whenever watched file patterns are added, changed or deleted.
- grunt-eslint: Validate files with ESLint
- grunt-mocha-cli: Run Mocha server-side tests in Grunt.
- load-grunt-tasks: Load multiple grunt tasks using globbing patterns
License
MIT