Testing with Gitlab a Phoenix app with legacy MySQL database

I am working on my first Phoenix application that uses an existing MySQL database (not created with Ecto). Examples for this use case are difficult to find online. I managed to have a build working but due to my lack of experience testing Phoenix apps, I don’t know if that configuration will work as the project evolves.

Has anybody any experience to share with such use case?

So far, my working solutions is:

gitlab-ci.yml

variables:
MYSQL_HOST: mysql
MYSQL_USER: root
MYSQL_DATABASE: edit_test
MYSQL_ROOT_PASSWORD: mysql
MIX_ENV: “test”

Compile and test:
image: elixir:latest
services:
- mysql:5.7
script:
- apt-get update -q && apt-get install -qqy --no-install-recommends mysql-client
- mysql --user=root --password="$MYSQL_ROOT_PASSWORD" --host=mysql < base_schema.sql
- mix local.rebar --force
- mix local.hex --force
- mix deps.get
- mix ecto.migrate
- mix test

test.exs

config :demo, Demo.Repo,
adapter: Ecto.Adapters.MySQL,
username: System.get_env(“MYSQL_USER”) || “root”,
password: System.get_env(“MYSQL_ROOT_PASSWORD”) || “root_dev_pwd”,
database: System.get_env(“MYSQL_DATABASE”) || “edit_test”,
hostname: System.get_env(“MYSQL_HOST”) || “localhost”,
show_sensitive_data_on_connection_error: true,
pool_size: 10,
pool: Ecto.Adapters.SQL.Sandbox

Thanks.

No better way of knowing than actually trying it. :slightly_smiling_face: Did you try your setup?

For sure, thanks :slight_smile:
I will stick with my current solution for now and see how it behaves as my project grows.