Skip to content

Glossary

SchemaSmith speaks blacksmith. Here’s the full decoder: the forge word, what it actually means, and the tool or setting where you’ll meet it. Lessons link here the first time a term shows up, so there’s nothing to memorize — just somewhere to look.

Forge wordWhat it meansWhere you’ll meet it
ForgingBuilding and managing your schema with SchemaSmith — the whole craftThe toolkit as a whole
CastingExtracting an existing database’s schema into editable, source-controllable filesSchemaTongs
Object listThe extraction whitelist — name the objects you want cast and SchemaTongs takes exactly those, leaving everything else (a migration tool’s history table, say) behind by omissionShouldCast.ObjectList (a SchemaTongs setting)
AdoptWhat the first quench does to tables that already exist on the target — stamps them as managed and stands up its own bookkeeping, without dropping or recreating them; the next run is a clean no-opSchemaQuench, on an existing database
QuenchingDeploying your declared schema to a live database and hardening it into placeSchemaQuench
Data deliveryShipping the rows that ride along with schema — lookup, seed, and reference dataDataTongs
Content file (.tabledata)A JSON array of rows that a table’s DataDelivery block points at; SchemaQuench MERGEs it into the table on deployDataDelivery.ContentFile
Merge typeHow delivered rows reconcile with the target: Insert (add missing), Insert/Update (add + update changed), Insert/Update/Delete (full sync)DataDelivery.MergeType
KindlingFirst-time setup that installs SchemaSmith’s helper routines into a target databaseKindleTheForge (a SchemaQuench setting)
ProductOne Product.json package — the unit you decompose a deployment into; named, with its own templates and guardrailsProduct.json
Common productThe product holding the shared parts every server needs, deployed everywhere so they’re defined once and never duplicatedProduct.json
Jig (blueprint)The definition of what a deployment targets — which server, which databasesProduct.json
Validation scriptThe deployment guardrail — a SQL check that must pass or the quench aborts before touching anythingValidationScript (a Product.json setting)
Server roleA server’s job — OLTP app, reporting, ETL, DBA admin — used as the line you decompose products alongThe Product.json per role
TemplateOne reusable schema definition — tables, indexes, scripts — that a single quench run deploys to many targets at onceTemplate.json
Molds (forms)Reusable schema definitions deployed across many databases or schemas in one runTemplates
Fan-outOne template definition deploying to many targets — every database or schema its identification scripts discover — in a single runTemplates
Schema templateA template carrying a SchemaIdentificationScript, so it fans out across schemas — one deployment per discovered schemaSchemaIdentificationScript (a Template.json setting)
Database identification scriptA SQL query returning database names; the template deploys into every database it returnsDatabaseIdentificationScript (a Template.json setting)
Schema identification scriptA SQL query returning schema names, run inside each target database; the template fans out into every schema it returnsSchemaIdentificationScript (a Template.json setting)
{{SchemaName}}The per-iteration token a schema template resolves to the current schema’s name, so one table file lands in every discovered schemaSchema-template scripts and tables
Tenant / multi-tenantA customer (or workspace) given its own schema inside a shared database; multi-tenant fan-out deploys one workspace definition into every tenant’s schemaSchema templates
ShouldApplyExpressionA per-target gate evaluated at deploy time — a boolean predicate on an object, or a scalar SELECT on a script folder; true deploys it, false skips itobject & folder conditional deployment
Sentinel (SCHEMASMITH: SHOULD NOT APPLY)The exact message a script raises to tell SchemaQuench “skip me” — an intentional skip, not a failure — for decisions a script can only make while runningper-script conditional deployment
Run-once migration scriptA .sql file in a template script slot (Before Scripts, After Scripts, …) that SchemaQuench runs once per database and records, so it never replays — your data fixes and one-time backfills, tracked for youCompletedMigrationScripts (the tracking table)
[ALWAYS] tagA marker in a script’s filename that opts it out of run-once tracking, so it runs on every quench — for things that must re-run, like a stats refresh or a re-grantScript filenames in any slot
Adjustable dyesValues resolved per target, so one package fits dev, test, and prod without editsScript tokens
Script tokenA {{TokenName}} placeholder in a script, resolved per run — from package defaults, a settings-file override, or an environment variableScriptTokens (in Product.json / Template.json / settings)
Query tokenA token whose value is computed at deploy time by running SQL against the target server, so it’s always current for the server it lands on<*Query*> (a ScriptTokens value)
{{TableSchema}}A system-provided token holding the full JSON of every table in the current template — columns, types, indexes, and custom metadata — for scripts that read your own modelTemplate scripts
Custom property (Extensions)Your own metadata attached to any schema object — classification, owning team, retention, anything — consumed as a token in an expression or read from {{TableSchema}} in a scriptExtensions (on a table/column/index/etc.)
Maker’s markThe product name that stamps and identifies your deploymentThe product name in Product.json
StrikeApplying a single change to a targetGeneral narration
WhatIfA preview run that reports exactly what a quench would change — the diff — without touching the target; the gate a pipeline runs on every changeWhatIf (a SchemaQuench setting)
PipelineThe automated path a change travels from commit to deployed — review, CI checks, and promotion across environments — without anyone running steps by handTeam workflow & CI
PromotionMoving the same reviewed package forward through environments in order — dev, then staging, then prod — rather than rebuilding it per environmentTeam workflow & multi-environment
ArtifactA built, versioned schema package in source control — the exact thing that gets deployed and, for rollback, re-deployedSource control & deployment
WhatIf-in-PRThe CI pattern of running a WhatIf preview on every pull request that touches schema — the full deploy logic runs against a database and the change is reported, but nothing is applied, so a change that can’t deploy fails the PR check before it mergesCI/CD pipeline
Approval gateA pause in the pipeline where a human signs off before the next step runs — typically before the production deploy, after staging and tests are greenCI/CD pipeline
Env-var configSupplying any setting through an environment variable (prefix SmithySettings_, __ for nesting) instead of a file, so one built artifact deploys to every environment with only the env vars changingSmithySettings_* environment variables
RollbackReturning a database to a prior release’s state by deploying that release’s package — SchemaQuench computes the reverting delta, so there are no separate undo scripts to write or runRollback & recovery
Transactional DDLWhether an engine lets schema-change statements participate in a transaction so a failed batch unwinds as a unit — PostgreSQL fully, SQL Server for most statements, MySQL not at all (each DDL auto-commits)Engine behavior during a deploy
Data-preservation scriptA migration script you run before a rollback to copy out data that a dropped column or table would otherwise destroy — SchemaSmith reverts structure; you handle the data when an operation is destructiveRollback & recovery
RecyclebinA soft-drop safety net: instead of destroying a table a rollback removes, SchemaQuench moves it aside with its data and restores it automatically if the table reappears in a later release — until a retention window purges itRollback & recovery (CustomTableDrop / CustomTableRestore)
Zero-downtimeA schema change applied as a sequence of individually-safe steps so the application keeps serving throughout — no maintenance window, no lights outMulti-environment & live changes
Expand/contractThe zero-downtime pattern for changing a column without downtime: add the new column, backfill it, switch the app’s reads/writes, then drop the old — each step independently safeLive column changes
BackfillCopying existing data into a newly-added column (e.g. UPDATE … SET new = old) so the new column is populated before anything depends on itExpand/contract step 2

New term in a lesson that isn’t on the anvil yet? Tell me — forgebarrett@schemasmith.com — and I’ll add it.

— Forge