ask
da13a371b4
feat(database): add shared transaction helpers
...
Add transaction base utilities with Begin, Commit, and Rollback
functions supporting both sql.DB and sql.Tx interfaces.
2025-07-12 23:52:48 -07:00
ask
a1a5a6b8be
database: create shared database package
...
Extract common database functionality from api/ntpdb and monitor/ntpdb
into shared common/database package:
- Dynamic connector pattern with configuration loading
- Configurable connection pool management (API: 25/10, Monitor: 10/5)
- Optional Prometheus metrics integration
- Generic transaction helpers with proper error handling
- Unified interfaces compatible with SQLC-generated code
Foundation for migration to eliminate ~200 lines of duplicate code.
2025-07-12 17:59:28 -07:00
ask
96afb77844
database: create shared database package with configurable patterns
...
Extract ~200 lines of duplicate database connection code from api/ntpdb/
and monitor/ntpdb/ into common/database/ package. Creates foundation for
database consolidation while maintaining zero breaking changes.
Files added:
- config.go: Unified configuration with package-specific defaults
- connector.go: Dynamic connector pattern from Boostport
- pool.go: Configurable connection pool management
- metrics.go: Optional Prometheus metrics integration
- interfaces.go: Shared database interfaces for consistent patterns
Key features:
- Configuration-driven approach (API: 25/10 connections + metrics,
Monitor: 10/5 connections, no metrics)
- Optional Prometheus metrics when registerer provided
- Backward compatibility via convenience functions
- Flexible config file loading (explicit paths + search-based)
Dependencies: Added mysql driver and yaml parsing for database configuration.
2025-07-12 16:54:24 -07:00
ask
b5141d6a70
Add database transaction helpers
2025-07-12 13:57:27 -07:00