Skip to content
Snippets Groups Projects
Unverified Commit c322fc02 authored by Jeff Bruemmer's avatar Jeff Bruemmer Committed by GitHub
Browse files

docs - link maintenance (#21143)

parent fad0a180
No related branches found
No related tags found
No related merge requests found
......@@ -2,9 +2,13 @@
Are you in charge of managing Metabase for your organization? Then you're in the right spot. You are the chosen one.
## Admin overview
Here's an [Admin overview](/learn/administration/guide.html) that gives you a map of the territory. The article is part of a larger [course on Administration](/learn/administration)).
## Installing Metabase
See our Operations Guide to learn [how to install Metabase](../operations-guide/installing-metabase.md).
See [how to install Metabase](../operations-guide/installing-metabase.md).
## Getting things set up
......
......@@ -38,7 +38,7 @@ If you are having problems with installing or using a community driver, your bes
## Driver development
If the driver you're looking for isn't available, take a look at the [Writing a Driver](https://github.com/metabase/metabase/wiki/Writing-a-Driver) wiki page. It's still a work in progress, but should give you a good start. A few things to keep in mind:
If the driver you're looking for isn't available, take a look at the [Guide to writing a Metabase driver](./developers-guide/drivers/start.md). It's still a work in progress, but should give you a good start. A few things to keep in mind:
- If your database has a JDBC driver, you'll be able to make use of some common classes that already exist in Metabase.
- We're still working on providing an independent test framework for drivers, but you can copy or symlink your driver into a local copy of the Metabase source code in order to utilize pre-existing tests. Take a look at [Test Extension Basics](https://github.com/metabase/metabase/wiki/Writing-a-Driver:-Adding-Test-Extensions,-Tests,-and-Setting-up-CI#test-extensions-basics) on the wiki.
......
......@@ -15,7 +15,7 @@ A Metabase driver:
Metabase drivers are organized into modules and packaged as plugins. Modules are the source code; plugins are the JARs built from that source code.
A Metabase plugin is a JAR file that contains the compiled class files and a Metabase [plugin manifest](#plugin-manifest) that lists details about the driver. In most cases, plugins are [lazily loaded](#lazy-loading), which means that Metabase won't initialize the drivers until it connects to a database that would use the driver.
A Metabase plugin is a JAR file that contains the compiled class files and a Metabase [plugin manifest](plugins.md) that lists details about the driver. In most cases, plugins are lazily loaded, which means that Metabase won't initialize the drivers until it connects to a database that would use the driver.
For Metabase to use your driver, all you need to do is put the driver JAR you built into the `/plugin` directory, which you'll find in the same directory where you run your metabase.jar. Something like this:
......
......@@ -190,14 +190,6 @@ There's a few other things Metabase needs to know when comparing test results. F
This is actually a common problem, and luckily we have figured out how to work around it. The solution is usually something like using different _schemas_ in place of different databases, or prefixing table names with the database name, and creating everything in the same database. For SQL-based databases, you can implement `sql.tx/qualified-name-components` to have tests use a different identifier instead of what they would normally use, for example `"shared_db"."test-data_venues".id` instead of `"test-data".venues.id`. The SQL Server and Oracle test extensions are good examples of such black magic in action.
# Running Tests and Linters
See [Running unit tests](devenv.md#running-unit-tests) and [Testing drivers](devenv.md#testing-drivers).
## Running the linter
See [Run the linters](devenv.md#run-the-linters).
# Setting up CI
Once you have all the tests passing, you'll need to set up CircleCI to run those tests against your driver. You'll need to add a step to [`./circleci/config.yml`](https://github.com/metabase/metabase/blob/master/.circleci/config.yml) to run tests against your database, then add that step to the "workflows" at the bottom of the config file.
......
......@@ -71,7 +71,7 @@ clojure -M:run driver-methods docs
Many drivers share implementation details, and writing complete implementations for sync methods and the like would involve a lot of duplicate code. Thus **many high-level features are partially or fully implemented in shared "parent" drivers**, such as the most common parent, `:sql-jdbc`. A "parent" driver is analogous to a superclass in object-oriented programming.
You can define a driver parent by listing the parent in the [plugin manifest](plugin.md).
You can define a driver parent by listing the parent in the [plugin manifest](plugins.md).
Parents like `:sql-jdbc` are intended as a common abstract "base class" for drivers that can share much of their implementation; in the case of `:sql-jdbc`, it's intended for SQL-based drivers that use a JDBC driver under the hood.`:sql-jdbc` and other parents provide implementations for many of the methods needed to power the four main features of a Metabase driver. In fact, `:sql-jdbc` provides implementations of things like `driver/execute-query`, so a driver using it as a parent does not need to provide one itself. However, various parent drivers define their own multimethods to implement.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment