duon / quma
A no-ORM database library for executing raw SQL files
Installs: 45
Dependents: 1
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/duon/quma
README
This project is a PHP port of Python library quma.
Test Databases
Set up a local test database with a dedicated user. Both CLI and SQL commands create equivalent results.
The examples below use default values (quma for database name, username, and password). You can change these to your preferred values, but if you do, you must set the corresponding environment variables to make the test suite aware of your changes (see Environment Variables).
PostgreSQL
Using the CLI:
echo "quma" | createuser --pwprompt --createdb quma createdb --owner quma quma
Using SQL:
CREATE ROLE quma WITH LOGIN PASSWORD 'quma' CREATEDB; CREATE DATABASE quma WITH OWNER quma;
MySQL/MariaDB
Using the CLI:
mysql -u root -p -e "CREATE DATABASE quma; CREATE USER 'quma'@'localhost' IDENTIFIED BY 'quma'; GRANT ALL PRIVILEGES ON quma.* TO 'quma'@'localhost';"
Using SQL:
CREATE DATABASE quma; CREATE USER 'quma'@'localhost' IDENTIFIED BY 'quma'; GRANT ALL PRIVILEGES ON quma.* TO 'quma'@'localhost';
Environment Variables
Override test database configuration using environment variables. By default, the test suite runs SQLite only; set QUMA_TEST_DRIVERS to include MySQL or PostgreSQL.
QUMA_TEST_DRIVERS: Comma-separated list of drivers to test (default:sqlite; available:sqlite,mysql,pgsql)QUMA_DB_SQLITE_DB_PATH_1: Path for primary SQLite database (default:quma_db1.sqlite3)QUMA_DB_SQLITE_DB_PATH_2: Path for secondary SQLite database (default:quma_db2.sqlite3)QUMA_DB_PGSQL_HOST: PostgreSQL host (default:localhost)QUMA_DB_MYSQL_HOST: MySQL host (default:127.0.0.1)QUMA_DB_NAME: Database name (default:quma)QUMA_DB_USER: Database user (default:quma)QUMA_DB_PASSWORD: Database password (default:quma)
Example:
export QUMA_DB_PGSQL_HOST=192.168.1.100 export QUMA_DB_USER=testuser export QUMA_DB_PASSWORD=testpass export QUMA_TEST_DRIVERS=sqlite,mysql,pgsql composer test
Running Tests
composer test
composer test:sqlite
composer test:mysql
composer test:pgsql
composer test:all
License
This project is licensed under the MIT license.