Meltano 3.0 Migration Guide
The following list includes all recommended migration tasks as well as breaking changes in Meltano version 3.0.0
.
Recommended
Changed
Using Postgres as a backend now requires installing Meltano with extra components
If you are already using Postgres as a backend, odds are you rely on Meltano's dependency on psycopg2
, so you will need to install Meltano with the psycopg2
extra:
pipx install "meltano[psycopg2]"
If you are setting a Postgres backend for the first time, it's recommended to instead use the postgres
extra and use the postgresql+psycopg
URI scheme:
pipx install "meltano[postgres]"
meltano config meltano set database_uri postgresql+psycopg://<username>:<password>@<host>:<port>/<database>
Plugin lock files are now always required
Plugin lock files are now always required.
Before this, Meltano fell back to retrieving the plugin definition from Meltano Hub if the lock file was missing. This behavior caused issues when lock files were not deployed to production and Meltano Hub was unavailable because of network restrictions.
Migration steps
- Enable the
ff.plugin_locks_required
feature flag:
meltano config meltano set ff.plugin_locks_required true
- Test that your project still works as expected. For example, by installing all plugins:
meltano install
- Generate all lock files for your project:
meltano lock --all
- (Optional) Remove the
ff.plugin_locks_required
feature flag after upgrading to Meltano v3, since it has no effect in Meltano v3.
For custom plugins, you might need to add a namespace
to the plugin definition.
Removed
Target extra setting target_schema
In line with the deprecation of the meltano elt
command in favor of meltano el
, the target_schema
extra setting of loaders has been removed.
This should impact very few users, as the target_schema
extra setting was only used by the dbt
transformer, which has been deprecated in favor of adapter-specific dbt utilities.
Migration steps
- In the configuration for the
dbt
transformer plugin, set thesource_schema
value to the appropriate environment variable for your target (e.g.$MELTANO_LOAD__DEFAULT_TARGET_SCHEMA
for Postgres).
The Meltano UI
Before Meltano v3.0.0
, Meltano included a web-UI that could be hosted by running meltano ui
. In Meltano v2.12.0
, this UI was deprecated. In Meltano v3.0.0
, this UI has been removed. Everything that was possible through the UI is possible without it via the CLI, or by directly editing meltano.yml
.