These are the docs for the Metabase master branch. Some features documented here may not yet be available in the latest release. Check out the docs for the latest version, Metabase v0.51.

Guide to writing a Metabase driver

So here’s the scenario: you love Metabase. It’s changed your life. But you have some data in a Visual Fox Pro ‘98 database and you need to make charts with it, and it might be a while before the core Metabase team writes a driver for Visual Fox Pro ‘98. No problem! Writing a driver can be fun.

Does a driver for your data source already exist?

Before you start building a driver from scratch, see if one already exists that you could contribute to:

Setting up

Before you start working on a driver, you’ll need to set up your development environment.

Having an in-depth understanding of Clojure is less important when writing JDBC-based drivers because their implementation is simpler – much of the work is already done for you – but it would still be helpful to understand what things like multimethods are. See Working with Clojure.

Writing a driver

Try to avoid skipping right to whichever page you think will give you the code you’ll need to copy-pasta. While Metabase drivers are often fairly small (some as little as fifty lines of code), you should put some careful thought into deciding what goes into those fifty lines. You’ll have an easier time writing the driver, and end up with a better one.

  1. Driver basics
  2. Plugin manifests
  3. Implementing multimethods for your driver
  4. Submitting a PR for your driver

Example drivers

Driver development announcements

Occasionally, we may make changes to Metabase that impact database drivers. We’ll try to give everyone as much of a heads up as possible. For notifications regarding potential driver changes, subscribe to the Metabase Community Authors mailing list.

Read docs for other versions of Metabase.

Want to improve these docs? Propose a change.