Skip to main content
Version: 0.6 (Latest)

DuckLake Publishing

Commands use Linux syntax. See Examples & Recipes for the Windows equivalents and the arguments every sync needs.

The credentials entries used below, and the DuckLake setup they rely on, are described in DuckLake Publishing.

./LakeXpress config create \
-a credentials.json \
--lxdb_auth_id lxdb_postgres \
--source_db_auth_id source_postgres \
--source_db_name MY_DB \
--source_schema_name MY_SCHEMA \
--target_storage_id s3_01 \
--sub_path mydata \
--publish_target ducklake_catalog \
--publish_schema_pattern "{schema}" \
--publish_table_pattern "{table}"
--publish_target

Credential ID of the DuckLake catalog entry. See Catalog Configuration.

--target_storage_idor--output_dir

Where the exported Parquet files are written: a storage entry, or --output_dir for a local export.

On cloud storage (S3, GCS, Azure), LakeXpress generates a CREATE SECRET statement so DuckDB can read the files.

--publish_schema_pattern/--publish_table_pattern

Same tokens as the other publishers: {schema}, {table}, {date}, {timestamp}, {uuid}, {subpath}. {database} resolves to an empty string.

  • Schema default: EXT_{schema}, or {schema} with --publish_method internal
  • Table default: {table}
--publish_methodNo effect on DuckLake

DuckLake registers the exported Parquet files by reference, without copying them. Only tables with the upsert or delete_insert strategy are copied into a DuckLake-managed table.

It still sets the default schema pattern when --publish_schema_pattern is not given: {schema} for internal, EXT_{schema} for external (the default).

Copyright © 2026 Architecture & Performance.