with one click
yml2ddl
Generate SQL DDL statements from Starlake YAML definitions
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Generate SQL DDL statements from Starlake YAML definitions
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Manage GizmoSQL processes: start, stop, list, and stop-all DuckLake-backed SQL servers
Create or modify database connections in application.sl.yml
Manage Quack DuckDB query servers exposing DuckLake over a thin remote protocol — serve (foreground), start/stop/list/stop-all (background)
Automatically infer schemas and load data from the incoming directory
Data quality expectations syntax, built-in macros, and validation patterns
Apply Row Level Security (RLS) and Column Level Security (CLS) policies
| name | yml2ddl |
| description | Generate SQL DDL statements from Starlake YAML definitions |
Generates SQL DDL (Data Definition Language) statements: CREATE TABLE, ALTER TABLE, etc.: from your Starlake YAML table definitions. Supports multiple target databases through type mappings defined in types/default.sl.yml.
starlake yml2ddl [options]
--datawarehouse <value>: Target data warehouse name: must match a DDL mapping key in types/default.sl.yml (required). Examples: bigquery, snowflake, postgres, redshift, synapse, duckdb--connection <value>: JDBC connection name with read/write access (for --apply mode)--output <value>: Output directory for generated DDL files (default: ./{datawarehouse}/)--catalog <value>: Database catalog name (if applicable)--domain <value>: Generate DDL for this specific domain only (default: all domains)--schemas <value>: Comma-separated list of schemas within the domain to generate DDL for--apply: Execute the generated DDL directly against the database--parallelism <value>: Parallelism level (default: available CPU cores)--reportFormat <value>: Report output format: console, json, or htmltypes/default.sl.ymlThe DDL generation uses ddlMapping to map Starlake types to database-specific types:
# metadata/types/default.sl.yml
types:
- name: "string"
primitiveType: "string"
ddlMapping:
bigquery: "STRING"
snowflake: "VARCHAR"
postgres: "TEXT"
duckdb: "VARCHAR"
synapse: "NVARCHAR(MAX)"
- name: "long"
primitiveType: "long"
ddlMapping:
bigquery: "INT64"
snowflake: "BIGINT"
postgres: "BIGINT"
duckdb: "BIGINT"
- name: "decimal"
primitiveType: "decimal"
ddlMapping:
bigquery: "NUMERIC"
snowflake: "NUMBER(38,9)"
postgres: "NUMERIC"
starlake yml2ddl --datawarehouse bigquery
starlake yml2ddl --datawarehouse snowflake --domain starbake
starlake yml2ddl --datawarehouse postgres --connection my_pg_conn --apply
starlake yml2ddl --datawarehouse duckdb --output /tmp/ddl
starlake yml2ddl --datawarehouse snowflake --domain sales --schemas orders,customers
starlake yml2ddl --datawarehouse bigquery --parallelism 4