Refresh
Refresh
The refresh command automatically detects and refreshes stale derived assets. It parses each script, identifies datasources, compares watermarks to find stale derived assets, and refreshes them.
Arguments:
@argument("input", type=Path())
@argument("dialect", type=str, required=False)
@option("--param", multiple=True, help="Environment parameters as key=value pairs")
@option("--parallelism", "-p", default=None, help="Maximum parallel workers for directory execution")
@option("--config", type=Path(exists=True), help="Path to trilogy.toml configuration file")
@argument("conn_args", nargs=-1, type=UNPROCESSED)
Full Examples
# Refresh assets in current directory
trilogy refresh . duckdb
# Refresh a specific script
trilogy refresh etl_pipeline.preql postgres "postgresql://localhost/db"
# Refresh with parallelism
trilogy refresh jobs/ snowflake -p 4 --account myaccount
# Refresh with config
trilogy refresh . --config trilogy.toml
What It Does
- Parses each script in the input path
- Identifies datasources marked as 'root' (source of truth)
- Compares watermarks to find stale derived assets
- Refreshes any stale assets by re-running their derivation logic
- Runs any validation statements after refresh
Notes
- Use this to keep derived assets up to date automatically
- Can be used in place of explicit refresh/update scripts
- Only refreshes assets that are actually stale
