-
Notifications
You must be signed in to change notification settings - Fork 1
Environment setup
winnie edited this page Apr 20, 2024
·
1 revision
There are some really useful command line tools for folks developing dbt projects locally (meaning they're using SQL, Jinja, Python, and the command line a lot). Here are a few I recommend:
-
zoxide
- a faster, easier-to-use, and more flexible replacement for thecd
command that learns your habits and saves you a lot of typing with a combination of fuzzy search and frecency (frequency + recency) sorting of your directory changing history -
rip
- a safer and easier-to-use replacement for therm
command that moves files to the trash instead of deleting them and lets you recover them if you make a mistake -
fzf
- a fuzzy finder that makes it easy to search through your command history, files, and directories super fast -
bat
- acat
replacement that adds syntax highlighting and line numbers, alias it tocat
and never look back -
eza
- a faster and more powerful replacement for thels
command -
fd
- a faster and easier-to-use replacement for thefind
command -
ripgrep
- a much faster and more powerful replacement for thegrep
command -
atuin
- a more powerful and magical shell history tool, with fuzzy search and a lot of other cool features -
starship
- a really cool and fast shell prompt that's highly customizable (using TOML so it's very easy and readable) and has a lot of cool features, and the default settings are great if you don't want to bother customizing it -
kitty
- a fast, feature-rich (great font, image, and mouse support, for example), and highly customizable terminal emulator that's a joy to use
Typing long commands is a bummer, if you plan on doing a lot of Python and dbt development, I highly recommend setting up aliases for common commands in your shell configuration (~/.bashrc
, ~/.zshrc
, etc.). For example, you could add the following to your shell configuration to make running dbt and python commands easier (just make sure they don't conflict with existing aliases or commands, customize to your liking!):
export EDITOR=<your favorite text editor>
# dbt alias suggestions
alias dbtp="$EDITOR ~/.dbt/profiles.yml"
alias db="dbt build"
alias dbs="dbt build -s"
alias dt="dbt test"
alias dts="dbt test -s"
alias dr="dbt run"
alias drs="dbt run -s"
alias dp="dbt parse"
alias dmv="dbt parse && mf validate-configs"
# Python alias suggestions
alias python="python3"
alias venv="uv venv .venv"
alias va="source .venv/bin/activate"
alias venva="venv && va"
alias pi="uv pip"
alias pir="uv pip install -r"
alias pirr="uv pip install -r requirements.txt"
alias pc="uv pip compile requirements.in -o requirements.txt"
alias piup="uv pip install --upgrade pip"
alias vpi="venva && piup && pirr"
alias vpci="venva && piup && pc && pirr"
# Go to your project, activate the virtual environment, and open it in your text editor
alias <something short and memorable>="cd <path/to/project> && venva && $EDITOR ."
alias t="task"
- Notice we can use previously defined aliases in new aliases. For example,
vpci
usesvenva
andpirr
to update the project's dependencies and install them.