Use venv for the Python virtual environment.
Manage required environment variables in a .env file.
python3.10 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pipsource .venv/bin/activate
python -m pip install mysql-connector-python pymysql mysqlclient psycopg2mysqlclient and psycopg2 may require additional native dependencies depending on your environment.
Open a MySQL shell with an administrative user and run the following:
mysqlCREATE DATABASE sqlmapper
DEFAULT CHARACTER SET utf8mb4
DEFAULT COLLATE utf8mb4_unicode_ci;
CREATE USER 'sqlmapper'@'localhost' IDENTIFIED BY 'sqlmapper';
GRANT ALL ON sqlmapper.* TO 'sqlmapper'@'localhost';Open psql with an administrative user and run the following:
psqlCREATE DATABASE sqlmapper
TEMPLATE template0
ENCODING 'UTF8'
LC_COLLATE 'C'
LC_CTYPE 'C';
CREATE USER sqlmapper WITH PASSWORD 'sqlmapper';
GRANT ALL PRIVILEGES ON DATABASE sqlmapper TO sqlmapper;
\c sqlmapper
GRANT ALL ON SCHEMA public TO sqlmapper;Create .env in the project root and set the following values:
MYSQL_HOST=localhost
MYSQL_PORT=3306
MYSQL_USER=sqlmapper
MYSQL_PASSWORD=sqlmapper
MYSQL_DATABASE=sqlmapper
PGHOST=localhost
PGPORT=5432
PGUSER=sqlmapper
PGPASSWORD=sqlmapper
PGDATABASE=sqlmapperset -a && source .env && set +a
source .venv/bin/activateSQLite3:
python -m unittest -v tests/test_sqlmapper_sqlite3.pyMySQL (mysql.connector):
python -m unittest -v tests/test_sqlmapper_mysql.pyMySQL (pymysql):
python -m unittest -v tests/test_sqlmapper_pymysql.pyMySQL (MySQLdb / mysqlclient):
python -m unittest -v tests/test_sqlmapper_mysqldb.pyPostgreSQL (psycopg2):
python -m unittest -v tests/test_sqlmapper_psycopg2.py