keboola / db-extractor-adapter
Set of connection adapters for DB extractors.
Installs: 3 446
Dependents: 1
Suggesters: 0
Security: 0
Stars: 0
Watchers: 16
Forks: 0
pkg:composer/keboola/db-extractor-adapter
Requires
- php: >=8.2
- ext-iconv: *
- keboola/common-exceptions: ^1.0
- keboola/csv: ^3.2
- keboola/db-extractor-config: ^1.15
- keboola/db-extractor-table-format: ^3.7
- keboola/retry: ^0.5
- keboola/ssh-tunnel: ^2.2
- psr/log: ^1.1
Requires (Dev)
- ext-json: *
- ihsw/toxiproxy-php-client: ^2.0
- keboola/coding-standard: >=9.0
- keboola/php-temp: ^2.0
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^9.1
Suggests
- ext-odbc: Needed to support ODBC connection
- ext-pdo: Needed to support PDO connection
This package is auto-updated.
Last update: 2025-10-14 16:24:46 UTC
README
This library contains a common interface for connecting to and data extracting from, various sources:
- It is intended for use with db-extractor-common.
- It supports PDO and ODBC connections for now.
- The interfaces defined in this library can be easily used to support other methods, e.g. cli BCP tool.
Main Classes
- Interface
DbConnectionis an abstraction that represents a connection to the database.- Abstract class
BaseDbConnectioncontains common code and retry mechanisms. - Class
PdoDbConnectionimplements connection using PDO extension. - Class
OdbcDbConnectionimplements connection using ODBC extension.
- Abstract class
- Interface
QueryResultis an abstraction that represents query result - rows returned from database.- Class
PdoQueryResultrepresents result from PDO connection. - Class
OdbcQueryResultrepresents result from ODBC connection.
- Class
- Interface
ExportAdapteris an abstraction which defines how the data is to be extracted.- Based on
ExportConfig,ExportResultis generated. The rows are written to the specified CSV file. - By implementing this interface, it is possible to add support for CLI tools for export.
- Abstract class
BaseExportAdaptercontains common code. - Class
PdoExportAdapterimplements export for PDO connection. - Class
OdbcExportAdapterimplements export for ODBC connection. - Class
FallbackExportAdapterallows you to use multiple adapters. If one fails, then fallback adapter is used.
- Based on
- Interface
QueryFactoryused to generate SQL query fromExportConfig. It is used if query is not set in the config.- Class
DefaultQueryFactoryis base implementation for MySQL/MariaDb compatible SQL dialects.
- Class
- Class
QueryResultCsvWriterused to write rows from theQueryResultto the specified CSV file.
Development
Clone this repository and init the workspace with following command:
git clone https://github.com/keboola/db-extractor-adapter
cd db-extractor-adapter
docker compose build
docker compose run --rm dev composer install --no-scripts
Run the test suite using this command:
docker compose run --rm dev composer tests
License
MIT licensed, see LICENSE file.