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_targetCredential ID of the DuckLake catalog entry. See Catalog Configuration.
--target_storage_idor--output_dirWhere 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_patternSame 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 DuckLakeDuckLake 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).