/brent

Primary LanguageRust

brent

background

brent is an experimental tool for running SQL migrations in snowflake, very similar in functionality to schemachange and liquibase.

Why brent?

Snowflake -> Arctic

Refinery -> Oil

Arctic + Oil = Brent Crude

installation

cargo install --path .

usage

To run migrations in the /.migrations folder w/ the vault plugin enabled:

brent --path ./migrations --enable-vault

Required environment variables:

SNOWFLAKE_ACCOUNT
SNOWFLAKE_USER
SNOWFLAKE_DATABASE
SNOWFLAKE_ROLE
SNOWFLAKE_SCHEMA
SNOWFLAKE_PASSWORD
SNOWFLAKE_WAREHOUSE

VAULT_SECRET_ID
VAULT_ADDR
VAULT_ROLE_ID

notable upstream deps

versioning

brent uses refinery under the hood for the logic that handles migrations

TODO

  • support vault for snowflake credentials
  • more jinja plugins? custom filters?
  • distribute minimal container image