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

0.1.0 2026-01-31 16:03 UTC

This package is auto-updated.

Last update: 2026-01-31 21:33:46 UTC


README

Software License Codacy Badge Codacy Badge Psalm level Psalm coverage

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.