From a3f429edb306f7f4640f78f6641723bf7f29fb7e Mon Sep 17 00:00:00 2001 From: Bakar Tavadze Date: Wed, 20 Mar 2024 15:04:15 +0400 Subject: [PATCH] Improve how golang-migrate is installed and add migration command to makefile. --- .github/workflows/ci.yml | 6 +++--- Dockerfile | 5 +++-- backend/Dockerfile | 5 +++-- backend/Makefile | 3 +++ backend/tests/unit_tests/conftest.py | 7 +------ 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 70721bae..ec79392a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -69,10 +69,10 @@ jobs: - name: Install dependencies run: | poetry install --with test - - name: Install go migrate + - name: Install golang-migrate run: | - curl -s https://packagecloud.io/install/repositories/golang-migrate/migrate/script.deb.sh | sudo bash - sudo apt-get update && sudo apt-get install -y migrate + wget -O golang-migrate.deb https://github.com/golang-migrate/migrate/releases/download/v4.17.0/migrate.linux-amd64.deb + sudo dpkg -i golang-migrate.deb && rm golang-migrate.deb - name: Run tests env: POSTGRES_HOST: localhost diff --git a/Dockerfile b/Dockerfile index 323accd0..86f6d9f1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -16,8 +16,9 @@ RUN yarn build FROM python:3.11 # Install system dependencies -RUN curl -s https://packagecloud.io/install/repositories/golang-migrate/migrate/script.deb.sh | bash -RUN apt-get update && apt-get install -y migrate libmagic1 && rm -rf /var/lib/apt/lists/* +RUN wget -O golang-migrate.deb https://github.com/golang-migrate/migrate/releases/download/v4.17.0/migrate.linux-amd64.deb \ + && dpkg -i golang-migrate.deb \ + && rm golang-migrate.deb # Install Poetry RUN pip install poetry diff --git a/backend/Dockerfile b/backend/Dockerfile index e7f6e450..75c4a8d9 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -2,8 +2,9 @@ FROM python:3.11 # Install system dependencies -RUN curl -s https://packagecloud.io/install/repositories/golang-migrate/migrate/script.deb.sh | bash -RUN apt-get update && apt-get install -y migrate libmagic1 && rm -rf /var/lib/apt/lists/* +RUN wget -O golang-migrate.deb https://github.com/golang-migrate/migrate/releases/download/v4.17.0/migrate.linux-amd64.deb \ + && dpkg -i golang-migrate.deb \ + && rm golang-migrate.deb # Install Poetry RUN pip install poetry diff --git a/backend/Makefile b/backend/Makefile index 6ff46f51..3e8dc5b2 100644 --- a/backend/Makefile +++ b/backend/Makefile @@ -16,6 +16,9 @@ TEST_FILE ?= tests/unit_tests/ start: poetry run uvicorn app.server:app --reload --port 8100 +migrate: + migrate -database postgres://$(POSTGRES_USER):$(POSTGRES_PASSWORD)@$(POSTGRES_HOST):$(POSTGRES_PORT)/$(POSTGRES_DB)?sslmode=disable -path ./migrations up + test: # We need to update handling of env variables for tests YDC_API_KEY=placeholder OPENAI_API_KEY=placeholder poetry run pytest $(TEST_FILE) diff --git a/backend/tests/unit_tests/conftest.py b/backend/tests/unit_tests/conftest.py index 1ccb49b2..1520a429 100644 --- a/backend/tests/unit_tests/conftest.py +++ b/backend/tests/unit_tests/conftest.py @@ -45,12 +45,7 @@ async def _drop_test_db() -> None: def _migrate_test_db() -> None: - dsn = ( - f"postgres://{os.environ['POSTGRES_USER']}:{os.environ['POSTGRES_PASSWORD']}" - f"@{os.environ['POSTGRES_HOST']}:{os.environ['POSTGRES_PORT']}/{TEST_DB}?sslmode=disable" - ) - cmd = ["migrate", "-path", "./migrations", "-database", dsn, "up"] - subprocess.run(cmd, check=True) + subprocess.run(["make", "migrate"], check=True) @pytest.fixture(scope="session")