Skip to main content
Drupal is a registered trademark of Dries Buytaert
Release: OpenID Connect / OAuth client 3.0.0-alpha9 New alpha version released for module openid_connect (3.0.0-alpha9). Usage Milestone: Google Analytics Module google_analytics crossed 1,000 active installs. Release: Timelinr 1.0.1 Minor update available for module timelinr (1.0.1). Release: GraphQL Compose Codegen 1.1.2 Minor update available for module graphql_compose_codegen (1.1.2). Release: Mapy.com 1.1.3 Minor update available for module mapycom (1.1.3). Release: Ckeditor5 entity browser 3.0.3 Minor update available for module ckeditor5_entity_browser (3.0.3). Release: Ckeditor5 entity browser 3.0.1 Minor update available for module ckeditor5_entity_browser (3.0.1). Release: Ckeditor5 entity browser 3.0.2 Minor update available for module ckeditor5_entity_browser (3.0.2). Release: Teamleader Integration 4.0.2 Minor update available for module teamleader (4.0.2). Module Revived: Entityqueue Buttons 1.1.2 Module entityqueue_buttons updated after 8 months of inactivity (1.1.2).

Dbal connection

1,908 sites Security covered Drupal 8–11
View on drupal.org

This module provides a factory service to inject Doctrine DBAL database connections into your services, allowing Composer libraries that require a DBAL connection to work seamlessly with Drupal. It also allows you to connect to databases other than the default one.

About

If you are using a composer library that needs a DBAL connection, this module provides a factory service that lets you inject that into your services.

e.g.


namespace Hooha\Whizzy;

use Doctrine\DBAL\Connection;

/**
 * Provides just enough fizzwang and not a scrap more.
 */
class Fizzwang {

  /**
   * DBAL connection.
   *
   * @var \Doctrine\DBAL\Connection
   */
  protected $connection;

  /**
   * Creates a new Fizzwang object.
   *
   * @param \Doctrine\DBAL\Connection $connection
   *   A DBAL connection.
   */
  public function __construct(Connection $connection) {
     $this->connection = $connection;
  }
  // ...
}

Then you can achieve this by using the @dbal_connection service in your services.yml file.

services:
  hooha.fizzwang:
    class: \Hooha\Whizzy\Fizzwang
    arguments: ['@dbal_connection']

To connect to other than the default database, define your own service like so (connects to $databases['migrate']:

services:
  dbal_connection.migrate:
    factory: dbal_connection_factory:get
    arguments: ['migrate']

Known issues

Please note that table-prefixing isn't supported by DBAL, so you will need to make sure that your tests only write to the prefixed table ($this->getDatabasePrefix()) and not the base installation.
Please use the issue queue to report any problems.

Installation

You must use composer to install this module
composer require "drupal/dbal"

Depends on

Dependencies of the latest stable release

No dependencies recorded for this project.

Required by

1 tracked project depends on this one

Activity

Tracked releases
1
Tracked since
Nov 2025
Latest release
9 months ago
Releases (12 mo)
1 ▲ from 0
Maintenance
Slowing

Releases

Version Type Core Release date
2.0.3 Stable 8–11 Nov 13, 2025