-
Notifications
You must be signed in to change notification settings - Fork 475
Adding new database drivers
CloudBeaver supports many popular databases out of the box.
But sometimes you need to add a new driver - less popular of even some custom driver developed inside your company.
This instruction describes how you can do it.
CB is based on DBeaver platform. It reuses drivers provided by DBeaver plugins.
Thus you can not add a driver which is not configured in some of DBeaver plugins.
Out of the box DBeaver supports more than 50 different database drivers. Some of them pre-configured in CloudBeaver as well, some are not.
Generally adding new driver in CB consists of two steps:
- Add driver in DBeaver
- Configure this driver in CloudBeaver
If driver already included in DBeaver then you can skip the first step.
DBeaver downloads database drivers (JDBC) on demand (on first attempt to connect to the database). This approach doesn't work in case of CloudBeaver. Mostly because driver download may require some user interactions + access to external resources + some local file system permissions.
CloudBeaver must have all driver jars pre-downloaded in the folder set as driversLocation
in the Server configuration. By default is is a directory drivers
in the root of CloudBeaver deployment.
Usually driver descriptions are located in DBeaver's plugin.xml
files. You can search string <driver
there and find a bunch of examples.
Like this:
<extension point="org.jkiss.dbeaver.dataSourceProvider">
<datasource id="postgresql" label="PostgreSQL" ...>
....
<drivers managable="true">
...
<driver
id="postgres-jdbc"
label="PostgreSQL"
icon="icons/postgresql_icon.png"
iconBig="icons/postgresql_icon_big.png"
class="org.postgresql.Driver"
sampleURL="jdbc:postgresql://{host}[:{port}]/[{database}]"
useURL="true"
defaultPort="5432"
defaultDatabase="postgres"
defaultUser="postgres"
webURL="https://jdbc.postgresql.org/"
propertiesURL="https://jdbc.postgresql.org/documentation/head/connect.html#connection-parameters"
description="%driver.postgresql.description"
categories="sql">
<file type="jar" path="maven:/org.postgresql:postgresql:RELEASE[42.2.5]">
<file type="jar" path="maven:/net.postgis:postgis-jdbc:RELEASE[2.2.1]" ignore-dependencies="true" optional="true"/>
<file type="jar" path="maven:/net.postgis:postgis-geometry:RELEASE[2.5.0]" ignore-dependencies="true" optional="true"/>
<parameter name="serverType" value="postgresql"/>
<property name="loginTimeout" value="20"/>
<property name="connectTimeout" value="20"/>
</driver>
...
</drivers>
</datasource>
</extension>
It is actual PostgreSQL driver definition (irrelevant configuration elements were skipped).
Full driver ID is postgresql.postgres-jdbc
. It is combined from two parts: data source provider ID and driver definition ID.
Note: for most non-standard driver you must add new driver definition to Generic plugin (org.jkiss.dbeaver.ext.generic
) because it works with plain JDBC API only.
Custom drivers configuration in UI is described in the Database Drivers article.
After that you can find you driver definition in the drivers.xml
(see Administering drivers). Then you can copy it into the appropriate plugin.xml file.
All drivers need some 3rd party jar files (actual driver executable code).
For CloudBeaver 3rd party jars must be in some public Maven repository (Maven Central is preferred). Line
<file type="jar" path="maven:/org.postgresql:postgresql:RELEASE[42.2.5]">
refers to external Maven artifact which must contain driver jar files.
- Getting started
- Create connection
- Connection network options
- Supported databases
-
Drivers management
- Database authentication methods
- Database navigator
- Properties editor
- Data editor
- SQL editor
-
Entity relation diagrams
- Cloud services
-
AI Smart assistance
- Data transfer
- General user guide
- Administration
- Server configuration
-
Server security and access configuration
- Authentication methods
- Access management
- Proxy configuration
-
Secret management
- Logs
-
Query manager
- Workspace location
- Command line parameters
-
Session manager
- Deployment options
- CloudBeaver Editions
- FAQ
- Development