Need help with ecto_sql?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

277 Stars 181 Forks Apache License 2.0 406 Commits 3 Opened issues


SQL-based adapters for Ecto and database migrations

Services available


Need anything else?

Contributors list

Ecto SQL

Build Status

Ecto SQL (documentation) provides building blocks for writing SQL adapters for Ecto. It features:

  • The Ecto.Adapters.SQL module as an entry point for all SQL-based adapters
  • Default implementations for Postgres (Ecto.Adapters.Postgres), MySQL (Ecto.Adapters.MyXQL), and MSSQL (Ecto.Adapters.Tds)
  • A test sandbox (Ecto.Adapters.SQL.Sandbox) that concurrently runs database tests inside transactions
  • Support for database migrations via Mix tasks

To learn more about getting started, see the Ecto repository.

Running tests

Clone the repo and fetch its dependencies:

$ git clone
$ cd ecto_sql
$ mix deps.get
$ mix test.all

Note that

mix test.all
runs the tests in
and the
s for each adapter:

You can also use a local Ecto checkout if desired:

$ ECTO_PATH=../ecto mix test.all

You can run tests against a specific Ecto adapter by using the

environment variable:
$ ECTO_ADAPTER=pg mix test

MySQL and PostgreSQL can be installed directly on most systems. For MSSQL, you may need to run it as a Docker image:

docker run -d -p 1433:1433 --name mssql -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=some!Password'


Copyright (c) 2012 Plataformatec \ Copyright (c) 2020 Dashbit

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.