Getting Started
The Compilers are cross-platform command-line tools for compiling SQL, managing database configurations, and running upgrades against Innovative's SBN environments. Self-contained binaries run on Windows, Linux, and macOS, with a built-in self-updater.
Repository Access
The Compilers live in the private GitHub repository innovative247/compilers. You must have authorization from Innovative before you can access it. Without authorization, the install URL returns 404.
To request access:
- Have a personal GitHub account ready (or create one at github.com/signup — GitHub also lets you sign up during invitation acceptance).
- Contact your Innovative point of contact with your GitHub username.
- Innovative will add you as a collaborator. Accept the invitation email within 7 days.
- Verify by visiting https://github.com/innovative247/compilers while signed in.
You will also need a working copy of the SBN_IR SVN tree — see Source Code (SBN_IR).
Installation
Pick the platform-specific guide:
- Windows Setup
- Ubuntu Setup (covers native Linux and WSL)
The installer ends by offering to run configure for you. If you accepted that prompt, the Configuration step below is already done.
Configuration
If you skipped configure at install time, run it now:
Then add a database connection profile and verify the binary is reachable:
For a real DB connectivity check after creating a profile:
settings.json
Profiles are stored in settings.json alongside the binaries:
- Windows:
%LOCALAPPDATA%\ibs-compilers\settings.json - Linux / macOS:
~/ibs-compilers/settings.json
SQL_SOURCE must point at the SVN working copy from Source Code. Use set_profile to manage profiles rather than editing the file directly.
Commands
Command | What it does |
|---|---|
| Interactive profile configuration wizard |
| Execute a single SQL command |
| Execute a SQL script with placeholder resolution |
| Orchestrate multi-file builds |
| Apply database upgrade scripts |
| Edit and compile database options |
| Edit and compile table locations |
| Edit and compile actions |
| Edit and compile required-fields |
| Compile message tables ( |
| One-shot export of message tables to source files (round-trippable) |
| Bulk data transfer (interactive only) |
| Bulk copy in/out for individual tables (native-bcp flags: |
| Query plan viewer for a SPID |
| Extended plan viewer (process info + SQL text + plan) |
| Show connected users (sp_who) |
| Tail a log file live |
Common subcommands
All compiler binaries support:
version— print versionconfigure— verify install, add to PATHupdate/install— self-update from GitHub Releaseshelp— show usage
Background builds with live tail
runcreate writes both .out (everything) and .err (failures only) when given a log file. iwatch tails the file until the process exits.
Bulk copying table data
INappends by default, exactly like native bcp.--truncateempties the table first.-tsets the field terminator (default tab). It accepts the\t,\n,\\and\0escapes, or a literal such as-t"|".-b Ncommits every N rows, traditional bcp style. Without it the whole file loads as a single unit, so a failure leaves the table unchanged — a transaction on MSSQL and PostgreSQL, the server's own bulk batch on Sybase ASE, which does not allow bulk copy inside a transaction.- The datafile positional names the file, and applies to a single table only. Omitted, the file is
<table>.bcpin the current directory. - Data files are UTF-8 (no BOM, LF line ends). On Sybase imports the server's character set is detected and reported.
Examples:
Updating
The Compilers self-update from GitHub Releases. Run update (or install) from any binary — the dispatcher accepts the verb with any prefix:
Downloads and extracts the latest platform asset if newer. Your settings.json is never overwritten.
A daily background check also runs on first invocation each day. If a newer release exists, you'll be prompted interactively.
MSSQL Initialization Script
For Microsoft SQL Server, the Compilers honor the SQLCMDINI environment variable. If it points to a SQL file, that file runs at the start of every connection.
Example mssql_setup.sql:
Set the variable on Windows:
On Ubuntu:
Troubleshooting
Symptom | Fix |
|---|---|
| Run |
| Profile's |
Self-update succeeds but version unchanged | An older copy is earlier on PATH — the running binary updates itself but PATH lookup hits a different one. Run |
macOS: |
|
Linux: permission denied after self-update |
|
Bash hash cache holding an old path |
|
Windows: "Symbolic link creation requires elevated privileges" warning on first compile | Enable Windows Developer Mode (Settings → For Developers) so the Compilers can create the lowercase symlinks they need. |
Related
- Source Code (SBN_IR) — the SVN tree the Compilers consume.
- Windows Setup — install + configure on Windows.
- Ubuntu Setup — install + configure on Ubuntu (native or WSL).