test: add podman/docker dbtest tool for postgres, mssql and mysql
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
# SQL Server container definition (sourced by dbtest.sh)
|
||||
DB_NAME=mssql
|
||||
DB_IMAGE=mcr.microsoft.com/mssql/server:2022-latest
|
||||
DB_CONTAINER=relspec-test-mssql
|
||||
DB_PORT=1439
|
||||
DB_INTERNAL_PORT=1433
|
||||
DB_ENV=(-e ACCEPT_EULA=Y -e "MSSQL_SA_PASSWORD=StrongPassword123!" -e MSSQL_PID=Express)
|
||||
DB_INIT_MOUNT="$ROOT/test_data/mssql/test_schema.sql:/init/test_schema.sql"
|
||||
DB_CONN_VAR=RELSPEC_TEST_MSSQL_CONN
|
||||
DB_CONN="sqlserver://sa:StrongPassword123!@localhost:1439?database=RelSpecTest"
|
||||
DB_DEFAULT_PKGS="./pkg/readers/mssql/ ./pkg/writers/mssql/"
|
||||
|
||||
_sqlcmd() { rt exec -i "$DB_CONTAINER" /opt/mssql-tools18/bin/sqlcmd -C -S localhost -U sa -P 'StrongPassword123!' "$@"; }
|
||||
db_ready() { _sqlcmd -Q "SELECT 1" >/dev/null 2>&1; }
|
||||
db_post_init() { _sqlcmd -b -i /init/test_schema.sql >/dev/null; }
|
||||
db_shell() { rt exec -it "$DB_CONTAINER" /opt/mssql-tools18/bin/sqlcmd -C -S localhost -U sa -P 'StrongPassword123!' -d RelSpecTest "$@"; }
|
||||
db_exec_file() { _sqlcmd -b -d RelSpecTest < "$1"; }
|
||||
@@ -0,0 +1,16 @@
|
||||
# MySQL container definition (sourced by dbtest.sh)
|
||||
DB_NAME=mysql
|
||||
DB_IMAGE=docker.io/library/mysql:8.4
|
||||
DB_CONTAINER=relspec-test-mysql
|
||||
DB_PORT=3309
|
||||
DB_INTERNAL_PORT=3306
|
||||
DB_ENV=(-e MYSQL_ROOT_PASSWORD=relspec_root_password -e MYSQL_DATABASE=relspec_test -e MYSQL_USER=relspec -e MYSQL_PASSWORD=relspec_test_password)
|
||||
DB_INIT_MOUNT="$ROOT/tests/dbtest/init/mysql.sql:/docker-entrypoint-initdb.d/init.sql"
|
||||
DB_CONN_VAR=RELSPEC_TEST_MYSQL_CONN
|
||||
DB_CONN="relspec:relspec_test_password@tcp(localhost:3309)/relspec_test"
|
||||
DB_DEFAULT_PKGS=""
|
||||
|
||||
db_ready() { rt exec "$DB_CONTAINER" mysqladmin ping -h 127.0.0.1 -urelspec -prelspec_test_password --silent >/dev/null 2>&1; }
|
||||
db_post_init() { :; }
|
||||
db_shell() { rt exec -it "$DB_CONTAINER" mysql -urelspec -prelspec_test_password relspec_test "$@"; }
|
||||
db_exec_file() { rt exec -i "$DB_CONTAINER" mysql -urelspec -prelspec_test_password relspec_test < "$1"; }
|
||||
@@ -0,0 +1,16 @@
|
||||
# Postgres container definition (sourced by dbtest.sh)
|
||||
DB_NAME=postgres
|
||||
DB_IMAGE=docker.io/library/postgres:16-alpine
|
||||
DB_CONTAINER=relspec-test-postgres
|
||||
DB_PORT=5439
|
||||
DB_INTERNAL_PORT=5432
|
||||
DB_ENV=(-e POSTGRES_USER=relspec -e POSTGRES_PASSWORD=relspec_test_password -e POSTGRES_DB=relspec_test)
|
||||
DB_INIT_MOUNT="$ROOT/tests/postgres/init.sql:/docker-entrypoint-initdb.d/init.sql"
|
||||
DB_CONN_VAR=RELSPEC_TEST_PG_CONN
|
||||
DB_CONN="postgres://relspec:relspec_test_password@localhost:5439/relspec_test"
|
||||
DB_DEFAULT_PKGS="./pkg/readers/pgsql/ ./pkg/writers/pgsql/ ./pkg/writers/sqlexec/"
|
||||
|
||||
db_ready() { rt exec "$DB_CONTAINER" pg_isready -U relspec -d relspec_test >/dev/null 2>&1; }
|
||||
db_post_init() { :; }
|
||||
db_shell() { rt exec -it "$DB_CONTAINER" psql -U relspec -d relspec_test "$@"; }
|
||||
db_exec_file() { rt exec -i "$DB_CONTAINER" psql -v ON_ERROR_STOP=1 -U relspec -d relspec_test < "$1"; }
|
||||
Reference in New Issue
Block a user