@informaticon/devops.sql-script-runner

CLI to automatically run scripts in CI/CD environments and to automatically initialize new databases and users.

Usage no npm install needed!

<script type="module">
  import informaticonDevopsSqlScriptRunner from 'https://cdn.skypack.dev/@informaticon/devops.sql-script-runner';
</script>

README

SQL script runner

CLI to automatically run scripts in CI/CD environments and to automatically initialize new databases and users.

Currently only availabe for MySQL databases.

Installation

npm i @informaticon/devops.sql-script-runner
./node_modules/.bin/ssr --version

Usage

CLI

ssr --database test --user test --password test

This will connect to the default mysql port on localhost and run the necessary scripts form ./scripts.

Configuration

Option CLI switch ENV variable Defaults
DB database --database SSR_DB_DATABASE
DB user --user SSR_DB_USER
DB password --password SSR_DB_PASSWORD ''
DB host --host SSR_DB_HOST 'localhost'
DB port --port SSR_DB_PORT 3306
DB socket path --socket-path SSR_DB_SOCKET_PATH
GCS proxy --gcs-proxy SSR_GCS_PROXY
GCS standalone proxy --gcs-proxy-standalone SSR_GCS_PROXY_STANDALONE
GCS proxy timeout --gcs-proxy-timeout SSR_GCS_PROXY_TIMEOUT 300000
Script directory --script-dir SSR_SCRIPT_DIRECTORY './scripts'

CLI switches will be used priror to ENV variables and paths will be resolved relative to the working directory.

You can use a .env file to configure your environment as well.

Initialization

IMPORTANT Make sure you save the generated password!

To initialize a new database and user use the --init option.

The given user must have the privileges to create databases and users.

Please use this option only locally on your system!

ssr --database test --user root --password "YOUR_ROOT_PW" --init

The following lines should be printed on success

Database test created
User test created
PLEASE SAVE YOUR NEW PASSWORD: YOUR_NEW_PASSWORD

Google Cloud SQL

The script runner has built in support for proxying to a Google Cloud SQL database. To use this functionality use --gcs-proxy

ssr --database test_db --user root --password "YOUR_ROOT_PW" --gcs-proxy informaticon-devops:europe-west1:devops --init

Standalone

The proxy can be used in standalone mode as well to use it with any given sql tool.

ssr --gcs-proxy-standalone informaticon-devops:europe-west1:devops