Skip to main content
Version: 0.4 (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 is the credential ID of the DuckLake catalog entry (see Catalog Configuration).
  • --target_storage_id (or --output_dir for local exports) is the storage location holding the exported Parquet files; if it points at cloud storage (S3/GCS/Azure), LakeXpress generates a CREATE SECRET statement so DuckDB can read the files.
  • --publish_schema_pattern / --publish_table_pattern follow the same token syntax ({schema}, {table}, {database}, {date}, {timestamp}, {uuid}, {subpath}) as the other publishers. Default: {schema} / {table}.
  • --publish_method has no effect on DuckLake: it always registers the exported Parquet files by reference (never copies data into the catalog). It still influences the CLI's generic default schema pattern ({schema} for internal, EXT_{schema} for the default external) unless --publish_schema_pattern is set explicitly.
Copyright © 2026 Architecture & Performance.