# Changelog ## [0.1.7] - 2026-06-05 ### Added - Cross-database migration via migrate_table() in sqlpyhelper.migration - Supports all five database combinations with batched inserts - Best-effort type mapping across SQLite, PostgreSQL, MySQL, SQL Server, Oracle - MigrationError exception for migration-specific failures - Migration documentation page on ReadTheDocs - 37 new tests for migration module (96 total) ## [0.1.6] - 2026-06-05 ### Added - ReadTheDocs documentation site at https://sqlpyhelper.readthedocs.io - Documentation badge in README - Documentation link in PyPI project_urls ## [0.1.5] - 2026-06-05 ### Added - Python logging module replacing unused log_query() function - Full type annotations on all public methods - commit_transaction() method for explicit transaction commits - pre-commit.sh script for local code quality checks ### Changed - Replaced deprecated cx_Oracle with python-oracledb - begin_transaction() is now database-agnostic - rollback_transaction() uses connection.rollback() directly ## [0.1.4] - 2026-06-04 ### Security - Fixed SQL injection vulnerability in fetch_by_param, create_table, insert_bulk, backup_table, and insert_dynamic - Fixed command injection in backup_database ### Fixed - reconnect() no longer crashes - return_connection_to_pool() now correctly returns connections to pool - SQLite queries now use ? placeholder throughout - Errors now raise typed exceptions instead of being silently printed ## [0.1.3] - 2025 - Initial public release