# You can easily switch between different databases by changing the value of COMPOSE_PROFILES in the .env file. # possible database connection strings: # DATABASE_URL='postgres://root:Password123!@localhost/sqlpage' # DATABASE_URL='mssql://root:Password123!@localhost/sqlpage' # DATABASE_URL='mysql://root:Password123!@localhost/sqlpage' # DATABASE_URL='Driver={/usr/lib64/psqlodbcw.so};Server=127.0.0.1;Port=5432;Database=sqlpage;UID=root;PWD=Password123!' # DATABASE_URL='Driver=Oracle 21 ODBC driver;Dbq=//127.0.0.1:1521/FREEPDB1;Uid=root;Pwd=Password123!' # Run for instance: # docker compose up postgres # and in another terminal: # DATABASE_URL='db_url' cargo test services: web: build: { context: "." } ports: - "8080:8080" volumes: - .:/var/www depends_on: # mssql: { condition: service_healthy } [ "${COMPOSE_PROFILES-postgres}" ] environment: DATABASE_URL: ${COMPOSE_PROFILES-postgres}://root:Password123!@${COMPOSE_PROFILES:-postgres}/sqlpage${DATABASE_URL_PARAMS:-} RUST_LOG: sqlpage=trace postgres: profiles: ["postgres"] ports: ["5432:5432"] build: { context: "db-test-setup/postgres" } shm_size: 128mb environment: POSTGRES_USER: root POSTGRES_DB: sqlpage POSTGRES_PASSWORD: Password123! healthcheck: test: pg_isready -U root -d sqlpage mysql: profiles: ["mysql"] ports: ["3306:3306"] image: mysql environment: MYSQL_ROOT_PASSWORD: Password123! MYSQL_DATABASE: sqlpage mssql: profiles: ["mssql"] ports: ["1433:1433"] build: { context: "db-test-setup/mssql" } healthcheck: test: /opt/mssql-tools18/bin/sqlcmd -S localhost -U root -P "Password123!" -Q "SELECT 1" -b -o /dev/null -No interval: 10s timeout: 3s retries: 10 start_period: 10s mariadb: profiles: ["mariadb"] ports: ["3306:3306"] image: mariadb environment: MYSQL_ROOT_PASSWORD: Password123! MYSQL_DATABASE: sqlpage oracle: profiles: ["oracle"] ports: ["1521:1521"] image: gvenzl/oracle-free:slim environment: ORACLE_PASSWORD: Password123! APP_USER: root APP_USER_PASSWORD: Password123!