ecto_sql

SQL-based adapters for Ecto and database migrations

Latest version: 3.12.1 registry icon
Maintenance score
100
Safety score
100
Popularity score
84
Check your open source dependency risks. Get immediate insight about security, stability and licensing risks.
Security
  Vulnerabilities
Version Suggest Low Medium High Critical
3.12.1 0 0 0 0 0
3.12.0 0 0 0 0 0
3.11.3 0 0 0 0 0
3.11.2 0 0 0 0 0
3.11.1 0 0 0 0 0
3.11.0 0 0 0 0 0
3.10.2 0 0 0 0 0
3.10.1 0 0 0 0 0
3.10.0 0 0 0 0 0
3.9.2 0 0 0 0 0
3.9.1 0 0 0 0 0
3.9.0 0 0 0 0 0
3.8.3 0 0 0 0 0
3.8.2 0 0 0 0 0
3.8.1 0 0 0 0 0
3.8.0 0 0 0 0 0
3.7.2 0 0 0 0 0
3.7.1 0 0 0 0 0
3.7.0 0 0 0 0 0
3.6.2 0 0 0 0 0
3.6.1 0 0 0 0 0
3.6.0 0 0 0 0 0
3.5.4 0 0 0 0 0
3.5.3 0 0 0 0 0
3.5.2 0 0 0 0 0
3.5.1 0 0 0 0 0
3.5.0 0 0 0 0 0
3.4.5 0 0 0 0 0
3.4.4 0 0 0 0 0
3.4.3 0 0 0 0 0
3.4.2 0 0 0 0 0
3.4.1 0 0 0 0 0
3.4.0 0 0 0 0 0
3.3.4 0 0 0 0 0
3.3.3 0 0 0 0 0
3.3.2 0 0 0 0 0
3.3.1 0 0 0 0 0
3.3.0 0 0 0 0 0
3.2.2 0 0 0 0 0
3.2.1 0 0 0 0 0
3.2.0 0 0 0 0 0
3.1.6 0 0 0 0 0
3.1.5 0 0 0 0 0
3.1.4 0 0 0 0 0
3.1.3 0 0 0 0 0
3.1.2 0 0 0 0 0
3.1.1 0 0 0 0 0
3.1.0 0 0 0 0 0
3.0.5 0 0 0 0 0
3.0.4 0 0 0 0 0
3.0.3 0 0 0 0 0
3.0.2 0 0 0 0 0
3.0.1 0 0 0 0 0
3.0.0 0 0 0 0 0

Stability
Latest release:

3.12.1 - This version is safe to use because it has no known security vulnerabilities at this time. Find out if your coding project uses this component and get notified of any reported security vulnerabilities with Meterian-X Open Source Security Platform

Licensing

Maintain your licence declarations and avoid unwanted licences to protect your IP the way you intended.

Apache-2.0   -   Apache License 2.0

Not a wildcard

Not proprietary

OSI Compliant



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 https://github.com/elixir-ecto/ecto_sql.git
$ cd ecto_sql
$ mix deps.get
$ mix test

In case you are modifying Ecto and EctoSQL at the same time, you can configure EctoSQL to use an Ecto version from your machine by running:

$ ECTO_PATH=../ecto mix test.all

Running integration tests

The command above will run unit tests. EctoSQL also has a suite of integration tests for its built-in adapters: pg, myxql and tds. If you are changing logic specific to a database, we recommend running its respective integration test suite as well. Doing so requires you to have the database available locally. 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' mcr.microsoft.com/mssql/server:2017-latest

Once the database is running, you can run tests against a specific Ecto adapter by using the ECTO_ADAPTER environment variable:

$ ECTO_ADAPTER=pg mix test

You may also run mix test.all to run the unit tests and all integration tests. You can also use a local Ecto checkout if desired:

$ ECTO_PATH=../ecto mix test.all

Running containerized tests

It is also possible to run the integration tests under a containerized environment using earthly. You will also need Docker installed on your system. Then you can run:

$ earthly -P +all

You can also use this to interactively debug any failing integration tests using the corresponding commands:

$ earthly -P -i --build-arg ELIXIR_BASE=1.8.2-erlang-20.3.8.26-alpine-3.11.6 --build-arg MYSQL=5.7 +integration-test-mysql
$ earthly -P -i --build-arg ELIXIR_BASE=1.8.2-erlang-20.3.8.26-alpine-3.11.6 --build-arg MSSQL=2019  +integration-test-mssql
$ earthly -P -i --build-arg ELIXIR_BASE=1.8.2-erlang-20.3.8.26-alpine-3.11.6 --build-arg POSTGRES=11.11 +integration-test-postgres

Then once you enter the containerized shell, you can inspect the underlying databases with the respective commands:

PGPASSWORD=postgres psql -h 127.0.0.1 -U postgres -d postgres ecto_test
MYSQL_PASSWORD=root mysql -h 127.0.0.1 -uroot -proot ecto_test
sqlcmd -U sa -P 'some!Password'

License

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 http://www.apache.org/licenses/LICENSE-2.0

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.