ETL for data transfer from PostgreSQL to Elasticsearch.
docker compose --profile infra --profile etl up -d
-
Prepare environment variables
cp .env.example .env
- Run infrastructure in Docker:
docker compose --profile infra up -d
- Run ETL service:
make up
- If you don't have
Poetry
installed run:
make poetry-download
- Initialize poetry and install
pre-commit
hooks:
make install
make pre-commit-install
- Run formatters and linters. Make sure there is no errors.
make format lint
Makefile
contains a lot of functions for
faster development.
1. Download and remove Poetry
To download and install Poetry run:
make poetry-download
To uninstall
make poetry-remove
2. Install all dependencies and pre-commit hooks
Install requirements:
make install
Pre-commit hooks could be installed after git init
via
make pre-commit-install
3. Codestyle
Automatic formatting uses black
and ruff
.
make codestyle
# or use synonym
make format
Codestyle checks only, without rewriting files:
make check-codestyle
Update all dev libraries to the latest version using one command
make update-dev-deps
4. Code security
This command identifies security issues with Safety
:
make check-safety
To validate pyproject.toml
use
make check-poetry
5. Linting and type checks
Run static linting with ruff
and mypy
:
make static-lint
6. Tests with coverage
Run tests:
make test
7. All linters
Of course there is a command to rule run all linters in one:
make lint
8. Docker
make docker-build
which is equivalent to:
make docker-build VERSION=latest
Remove docker image with
make docker-remove
More information about docker.
9. Cleanup
Delete pycache files
make pycache-remove
Remove package build
make build-remove
Delete .DS_STORE files
make dsstore-remove
Remove .mypycache
make mypycache-remove
Or to remove all above run:
make cleanup
This project was generated with python-package-template