PHPackages                             keboola/db-extractor-adapter - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Database &amp; ORM](/categories/database)
4. /
5. keboola/db-extractor-adapter

ActiveLibrary[Database &amp; ORM](/categories/database)

keboola/db-extractor-adapter
============================

Set of connection adapters for DB extractors.

1.16.0(2mo ago)03.8k↑333.3%1MITPHPPHP &gt;=8.2CI passing

Since Aug 13Pushed 2mo ago14 watchersCompare

[ Source](https://github.com/keboola/db-extractor-adapter)[ Packagist](https://packagist.org/packages/keboola/db-extractor-adapter)[ RSS](/packages/keboola-db-extractor-adapter/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (12)Versions (37)Used By (1)

DB extractor adapter
====================

[](#db-extractor-adapter)

This library contains a common interface for connecting to and data extracting from, various sources:

- It is intended for use with [db-extractor-common](https://github.com/keboola/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
------------

[](#main-classes)

- **Interface [`DbConnection`](https://github.com/keboola/db-extractor-adapter/blob/master/src/Connection/DbConnection.php)** is an abstraction that represents a connection to the database.
    - Abstract class [`BaseDbConnection`](https://github.com/keboola/db-extractor-adapter/blob/master/src/Connection/BaseDbConnection.php) contains common code and retry mechanisms.
    - Class [`PdoDbConnection`](https://github.com/keboola/db-extractor-adapter/blob/master/src/PDO/PdoConnection.php) implements connection using PDO extension.
    - Class [`OdbcDbConnection`](https://github.com/keboola/db-extractor-adapter/blob/master/src/ODBC/OdbcConnection.php) implements connection using ODBC extension.
- **Interface [`QueryResult`](https://github.com/keboola/db-extractor-adapter/blob/master/src/ValueObject/QueryResult.php)** is an abstraction that represents query result - rows returned from database.
    - Class [`PdoQueryResult`](https://github.com/keboola/db-extractor-adapter/blob/master/src/PDO/PdoQueryResult.php) represents result from PDO connection.
    - Class [`OdbcQueryResult`](https://github.com/keboola/db-extractor-adapter/blob/master/src/ODBC/OdbcQueryResult.php) represents result from ODBC connection.
- **Interface [`ExportAdapter`](https://github.com/keboola/db-extractor-adapter/blob/master/src/ExportAdapter.php)** is an abstraction which defines how the data is to be extracted.
    - Based on `ExportConfig`, [`ExportResult`](https://github.com/keboola/db-extractor-adapter/blob/master/src/ValueObject/ExportResult.php) is 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 [`BaseExportAdapter`](https://github.com/keboola/db-extractor-adapter/blob/master/src/BaseExportAdapter.php) contains common code.
    - Class [`PdoExportAdapter`](https://github.com/keboola/db-extractor-adapter/blob/master/src/PDO/PdoExportAdapter.php) implements export for PDO connection.
    - Class [`OdbcExportAdapter`](https://github.com/keboola/db-extractor-adapter/blob/master/src/ODBC/OdbcExportAdapter.php) implements export for ODBC connection.
    - Class [`FallbackExportAdapter`](https://github.com/keboola/db-extractor-adapter/blob/master/src/FallbackExportAdapter.php) allows you to use multiple adapters. If one fails, then fallback adapter is used.
- **Interface [`QueryFactory`](https://github.com/keboola/db-extractor-adapter/blob/master/src/Query/QueryFactory.php)** used to generate SQL query from `ExportConfig`. It is used if query is not set in the config.
    - Class [`DefaultQueryFactory`](https://github.com/keboola/db-extractor-adapter/blob/master/src/Query/DefaultQueryFactory.php) is base implementation for MySQL/MariaDb compatible SQL dialects.
- **Class [`QueryResultCsvWriter`](https://github.com/keboola/db-extractor-adapter/blob/master/src/QueryResultCsvWriter.php)** used to write rows from the `QueryResult` to the specified CSV file.

Development
-----------

[](#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
-------

[](#license)

MIT licensed, see [LICENSE](./LICENSE) file.

###  Health Score

54

—

FairBetter than 97% of packages

Maintenance84

Actively maintained with recent releases

Popularity21

Limited adoption so far

Community19

Small or concentrated contributor base

Maturity79

Established project with proven stability

 Bus Factor1

Top contributor holds 50% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~65 days

Recently: every ~158 days

Total

32

Last Release

81d ago

PHP version history (3 changes)1.0.0PHP &gt;=7.4

1.11.0PHP &gt;=8.1

1.13.0PHP &gt;=8.2

### Community

Maintainers

![](https://www.gravatar.com/avatar/101dbf2551a0709ddab522f97669f13a2c4cc2d0a1e8d009f3af6ba80accb1a9?d=identicon)[Keboola](/maintainers/Keboola)

---

Top Contributors

[![michaljurecko](https://avatars.githubusercontent.com/u/19371734?v=4)](https://github.com/michaljurecko "michaljurecko (59 commits)")[![ondrajodas](https://avatars.githubusercontent.com/u/12143866?v=4)](https://github.com/ondrajodas "ondrajodas (31 commits)")[![AdamVyborny](https://avatars.githubusercontent.com/u/27994036?v=4)](https://github.com/AdamVyborny "AdamVyborny (16 commits)")[![romantmb](https://avatars.githubusercontent.com/u/228957?v=4)](https://github.com/romantmb "romantmb (9 commits)")[![MiroCillik](https://avatars.githubusercontent.com/u/1488015?v=4)](https://github.com/MiroCillik "MiroCillik (2 commits)")[![ujovlado](https://avatars.githubusercontent.com/u/419849?v=4)](https://github.com/ujovlado "ujovlado (1 commits)")

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Type Coverage Yes

### Embed Badge

![Health badge](/badges/keboola-db-extractor-adapter/health.svg)

```
[![Health](https://phpackages.com/badges/keboola-db-extractor-adapter/health.svg)](https://phpackages.com/packages/keboola-db-extractor-adapter)
```

###  Alternatives

[cycle/database

DBAL, schema introspection, migration and pagination

64690.9k31](/packages/cycle-database)[guikingone/scheduler-bundle

A Symfony bundle that allows to schedule and create repetitive tasks

114217.4k](/packages/guikingone-scheduler-bundle)[tommyknocker/pdo-database-class

Framework-agnostic PHP database library with unified API for MySQL, MariaDB, PostgreSQL, SQLite, MSSQL, and Oracle. Query Builder, caching, sharding, window functions, CTEs, JSON, migrations, ActiveRecord, CLI tools, AI-powered analysis. Zero external dependencies.

845.7k](/packages/tommyknocker-pdo-database-class)[bartlett/php-compatinfo-db

Reference Database of all functions, constants, classes, interfaces on PHP standard distribution and about 110 extensions

1183.0k1](/packages/bartlett-php-compatinfo-db)[rodrigopedra/laravel-query-logger

Laravel query logger

1211.8k](/packages/rodrigopedra-laravel-query-logger)[perplorm/perpl

Perpl is an improved and still maintained fork of Propel2, an open-source Object-Relational Mapping (ORM) for PHP.

203.7k](/packages/perplorm-perpl)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
