@@ -7,6 +7,115 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77
88## [ Unreleased]
99
10+ ## [ 2.11.0] - 2025-11-28
11+
12+ ### Added
13+ - ** Oracle Database Support** - Full support for Oracle Database (OCI driver):
14+ - Complete Oracle dialect implementation with all query builder features
15+ - Support for Oracle-specific data types and functions
16+ - CLOB handling for large text fields in WHERE, ORDER BY, and DISTINCT clauses
17+ - Oracle-specific SQL formatting (INSERT ALL, FILTER clause, etc.)
18+ - Support for recursive CTEs, window functions, and advanced Oracle features
19+ - ` normalize_row_keys ` option for automatic column name normalization
20+ - Oracle examples and comprehensive test coverage
21+ - Oracle CI integration in GitHub Actions with Oracle Instant Client installation
22+
23+ - ** PdoDb::fromEnv() Method** - Unified .env file support:
24+ - Static method ` PdoDb::fromEnv(?string $envPath = null) ` for easy database connection from .env files
25+ - Automatic .env file detection (respects ` PDODB_ENV_PATH ` environment variable)
26+ - Support for all database dialects and configuration options
27+ - Reusable ` EnvLoader ` class for .env parsing logic
28+
29+ - ** PHP Extension Validation** - Automatic validation of required PHP extensions:
30+ - ` ExtensionChecker ` class validates required PDO extensions before connection
31+ - Helpful error messages with installation suggestions for missing extensions
32+ - Support for all database dialects (MySQL, PostgreSQL, SQLite, MSSQL, Oracle)
33+ - Integration with ` DialectRegistry ` for automatic extension checking
34+
35+ - ** Extended .env File Support** - Support for all dialect-specific options in .env files:
36+ - Oracle-specific options (` PDODB_SERVICE_NAME ` , ` PDODB_SID ` )
37+ - All database-specific configuration options can be set via environment variables
38+ - Unified .env parsing across CLI tools and application code
39+
40+ - ** Connection Management CLI Commands** (` pdodb connection ` ):
41+ - ` pdodb connection list ` - List all configured database connections
42+ - ` pdodb connection test [name] ` - Test database connection(s)
43+ - ` pdodb connection info [name] ` - Show detailed connection information
44+ - Support for multiple named connections
45+
46+ - ** Database Seeds Functionality** (` pdodb seed ` ):
47+ - ` pdodb seed create <name> ` - Create seed file
48+ - ` pdodb seed run [name] ` - Run seed files
49+ - Support for database seeding in development and testing
50+
51+ - ** Dump Command Backup Features** (` pdodb dump ` ):
52+ - Compression support (gzip, bzip2)
53+ - Auto-naming with timestamps
54+ - Backup rotation with configurable retention
55+ - Enhanced backup management capabilities
56+
57+ - ** Table Management Commands** (` pdodb table ` ):
58+ - ` pdodb table count [table] ` - Count rows in table(s) with improved formatting
59+ - ` pdodb table sample <table> [limit] ` - Get random sample rows from table
60+
61+ - ** Comprehensive Test Coverage** :
62+ - Extended test coverage to 85%+
63+ - Tests for CLI commands (MigrateCommand, ModelCommand, DbCommand, UserCommand)
64+ - Tests for DDL builders (MySQL, PostgreSQL, MSSQL, SQLite)
65+ - Tests for RepositoryGenerator, ServiceGenerator, MigrationGenerator
66+ - Tests for CacheManager, ConnectionCommand, MonitorManager
67+ - Tests for edge cases and error handling
68+
69+ ### Changed
70+ - ** Oracle Compatibility Improvements** :
71+ - Improved Oracle support for TRUE/FALSE, CAST, GREATEST, and LEAST functions
72+ - Enhanced REGEXP_MATCH, COALESCE, and NULLIF support for Oracle
73+ - Improved CLOB handling in formatIfNull, formatRepeat, and formatReverse
74+ - Added formatUnionOrderBy() for Oracle ORDER BY in UNION queries
75+ - Better date handling in INSERT ALL statements
76+ - Cursor pagination support for Oracle
77+
78+ - ** Refactoring** :
79+ - Removed dialect-specific logic from general classes (ConditionBuilder, concat() method)
80+ - Moved dialect-specific logic to dialect implementations
81+ - Improved code organization and maintainability
82+
83+ ### Fixed
84+ - ** Oracle CI in GitHub Actions** :
85+ - Fixed Oracle Instant Client installation (version 23.26.0.0.0)
86+ - Fixed apt-get exit code 8 handling
87+ - Fixed pdo_oci and oci8 extension compilation
88+ - Fixed Oracle Instant Client SDK installation for headers
89+ - Improved error handling and diagnostics
90+
91+ - ** Oracle CLI Examples** :
92+ - Fixed BaseCliCommand::buildConfigFromEnv() to check PDODB_SERVICE_NAME/PDODB_SID for Oracle
93+ - Added setEnvFromConfig() helper function for CLI examples
94+ - Fixed environment variable propagation for Oracle examples
95+ - All Oracle CLI examples now work correctly in GitHub Actions
96+
97+ - ** Oracle Examples** :
98+ - Fixed recursive CTE examples
99+ - Fixed type helpers and JSON basics
100+ - Fixed window functions and CTEs
101+ - Fixed INSERT ALL dates and FILTER clause CLOB handling
102+ - Fixed cursor pagination
103+
104+ - ** Other Fixes** :
105+ - Fixed Memcached adapter creation in CacheFactory
106+ - Fixed foreign key constraint handling in DDL examples for MySQL/MariaDB
107+ - Fixed PHPStan errors
108+ - Fixed test assertions and improved test reliability
109+
110+ ### Documentation
111+ - Added Oracle Database installation instructions
112+ - Fixed all documentation links to use correct file names with numeric prefixes
113+ - Created bidirectional links between documentation and examples
114+ - Optimized README.md for better readability
115+ - Updated TOC with missing sections
116+ - Added CLI Tools section to table of contents
117+ - Added bash completion installation instructions
118+
10119## [ 2.10.3] - 2025-11-21
11120
12121### Added
@@ -1714,7 +1823,8 @@ Initial tagged release with basic PDO database abstraction functionality.
17141823
17151824---
17161825
1717- [Unreleased]: https://github.com/tommyknocker/pdo-database-class/compare/v2.10.3...HEAD
1826+ [Unreleased]: https://github.com/tommyknocker/pdo-database-class/compare/v2.11.0...HEAD
1827+ [2.11.0]: https://github.com/tommyknocker/pdo-database-class/compare/v2.10.3...v2.11.0
17181828[2.10.3]: https://github.com/tommyknocker/pdo-database-class/compare/v2.10.2...v2.10.3
17191829[2.10.2]: https://github.com/tommyknocker/pdo-database-class/compare/v2.10.1...v2.10.2
17201830[2.10.1]: https://github.com/tommyknocker/pdo-database-class/compare/v2.10.0...v2.10.1
0 commit comments