- [sql] Support
:pool_count
option
- [Ecto.Migration] Add
Ecto.Migration.remove_if_exists/1
- [Ecto.Migrator] Warn for migration files that end in
.ex
- [sql] Support for subqueries in order_bys and group_bys
- [mysql] Add check constraints for MySQL
- [postgres] Add native bitstring support to Postgres
- [postgres] Add support for
:duration
type - [postgres] Add
:plan
explain option for Postgres - [tds] Allow passing
%Tds.Parameter
structs as params for named parameter usage inquery
- [mysql] Type cast of integers in MySQL should use signed integers
- [mysql] Relax
myxql
dependency
- [postgres] Relax
postgrex
dependency
- [Ecto.Migration] Add
:generated
option to columns - [Ecto.Migration] Add index storage parameters (via :options) for Postgres
- [Ecto.Migration] Support
:prefix
on index rename - [Ecto.Migrator] Stop runner if migration fails
- [mix ecto.migrate] Add
--log-level
to ecto.migrate - [mix ecto.rollback] Add
--log-level
to ecto.rollback - [sql] Support fragment splicing
- [sql] Support data-modifying CTEs
- [sql] Add source to insert_ll, insert, update, and delete telemetry events
- [tds] Include
exec
before stored procedure for TDS (for earlier SQLServer versions)
- [mix ecto.migrate] Read existing dynamic repo in migrations
- [mix ecto.migrate] Don't add primary key on remove migration
- [migrations] Handle
from: {reference, opts}
in FK migrations - [mysql] Support MariaDB versioned tables
- [migrations] Don't add comment to removed columns
- [migrations] Ensure module is loaded before checking for migration
- [mysql] Fix for casting boolean values in MySQL
- [postgres] Allow Postgrex v0.17.x
- [Ecto.Migrator] Allow running the migrator in your supervision tree
- [Ecto.Migrator] Allow renaming an index
- [Ecto.Migrator] Add
execute_file/1
andexecute_file/2
- [mix ecto.dump] Support dumping multiple prefixes on PostgreSQL and MySQL
- [mysql] Improve constraint matching support on alternative implementations
- [postgres] Allow
CASCADE
when dropping a constraint on postgres
- [mix ecto.load] Suppress query logs in mix ecto.load when quiet flag is given
- [migrator] Raise if target version in
to
/exclusive_to
is not an integer - [mysql] Add support for cross lateral joins
- [postgres] Add support for cross lateral joins
- [postgres] Add support for materialized CTEs
- [telemetry] Send
cast_params
metadata to telemetry events
- [mysql] Support
:format
option onexplain
- [postgres] Permit outer joins when using
update_all
- [sql] Add support for
ONLY
in index creation
- [mysql] Ensure locks are quoted
- [mysql] Do not crash on
mix ecto.drop
when the database is unreachable - [postgres] Fix empty array compare in PostgreSQL
- [sql] Allow function sources whose name begins with 'select'
- [migrations] Support
primary_key
configuration options intable
- [migrations] Add
:nulls_distinct
option for unique indexes - [postgres] Support the use of advisory locks for migrations
- [sql] Add
dump_cmd
topostgrex
andmyxql
adapters - [sql] Log human-readable UUIDs by using pre-dumped query parameters
- [sql] Support select aliases from
selected_as/1
andselected_as/2
- [telemetry] Emit
schema_migration: true
undertelemetry_options
- [sql] Implement
literal/1
support in fragments
- [postgres] Fix possible breaking change on
json_extract_path
for boolean values introduced in v3.8.0 - [sql] Colorize stacktrace and use
:
before printing line number
- [mysql] Raise on a subquery with parameter on MySQL join
- [sql] Do not invoke dynamic repositories in direct
Ecto.Adapters.SQL
operations
- [migrations] Support
--to-exclusive
inmix ecto.migrate
andmix ecto.rollback
- [mysql] Add
:comment
support on MySQL migrations - [postgres] Support
:prepare
option per operation - [postgres] Optimize
json_extract_path
comparisons in PostgreSQL - [sql] Optionally log last known call, publish stacktrace in telemetry
- [telemetry] Include
:repo
option in telemetry events
- [sql] Ensure
:timeout
option is respected inEcto.Adapters.SQL.explain/3
- [adapters] Support latest
myxql
andpostgrex
- [migrations] Add
:cascade
option todrop
- [migrations] Support
--prefix
inmix ecto.migrations
- [migrations] Add
--log-migrator-sql
and--log-migrations-sql
- [mysql] Cache more insert/update queries and allow
:cache_statement
to be set - [mssql] Support more recent tds versions
- [migrations] Consider the database prefix when locking tables
- [mysql] Support lateral joins
- [sql] Fix CTE subqueries not finding parent bindings
- [migration] Improve error message on invalid migration type
- [postgres] Avoid duplicate order_by with distinct
- [sql] Implement new checked_out? callback required by latest Ecto
- [migrations] Ensure migration_source option is respected in PostgreSQL adapter
- [migrations] Fix a bug where the migration lock would not apply on the first migration (when the schema migrations table is empty). This fix changes how migration tables are locked, therefore let us know of any possible regressions in your workflow
- [migrations] Allow generating migrations from within umbrella app
- [postgres] Add
:format
option to PostgreSQL explain - [postgres] Support
:socket_dir
connection option when usingmix ecto.load
ormix ecto.dump
- [sandbox] Support locally registered processes in
allow/3
- [storage] Do not fail
storage_up
if the user has access to an already-created database - [tds] Support for
:inner_lateral
and:left_lateral
- [mysql] Support defaults for JSON columns
- [postgres] Allow Postgrex v1.0
- [migrations] Pass
:schema_migration
option to repo operations forprepare_query
checks - [psql] Support
:force_drop
configuration to force a DB to be dropped
- [migrations] Support
:with
option inreferences
for composite foreign keys - [migrations] Support
:match
option inreferences
- [tds] Support TDS 3-part and 4-part prefixes
- [tds] Support explain plan for the TDS adapter
- [migrations] Reload all migrations once the lock is free to avoid running the same migration more than once
- [query] Support nested subqueries
- [migrations] Add option to skip schema migrations table checks
- [migrations] Add
:migration_repo
configuration to allow a different repository to host the schema migrations - [migrations] Support
validate: false
on references and constraints - [migrations] Accept
:migration_primary_key
as false and add:migration_foreign_key
repo config - [postgres] Support for
:identity
key types in Postgres 10 or later - [postgres] Use IF NOT EXIST when creating index with
create_if_not_exists
, this requires PG 9.5+ or later - [repo] Support
Repo.explain(:all | :update_all | :delete_all, query)
for Ecto adapters - [sandbox] Allow for dynamic repos to be checked out in sandbox
- [migrations] Flush migration commands before executing
before_commit
callback - [migrations] Do not swallow errors when migration lock is disabled
- [ecto] Fix warnings on Elixir v1.11
- [migrations] Migration prefix should have higher preference than
default_options
- [sandbox] Add
Ecto.Adapters.SQL.start_owner!/2
andEcto.Adapters.SQL.stop_owner/1
- [myxql] Decode BIT columns when using MyXQL and
:boolean
type - [migrations] Use one line per migration in the schema dump
- [ecto] Support
as
andparent_as
from Ecto v3.4.3+ - [ecto] Support
x in subquery(query)
from Ecto v3.4.3+
- [myxql] A binary with size should be a varbinary
- [mssql] A binary without size should be a varbinary(max)
- [myxql] Assume the reference does not change in MyXQL and prepare for v0.4.0
- [adapters] Support Ecto's v3.4
json_extract_path/2
- [migrations] Support multiple migration paths to be given with
--migration-path
- [mssql] Add built-in support to MSSQL via the TDS adapter
- [repo] Support custom options on telemetry
- [adapters] Support fragments in locks
- [migration] Add
:include
option to support covering indexes
- [myxql] Allow not setting the encoding when creating a database
- [myxql] Removing prefixed table name from constraints on latest MySQL versions
- [sql] Fix precedence of
is_nil
when inside a comparison operator
- [adapters] Start StorageSupervisor before using it
- [adapters] Do not leak PIDs on storage commands
- [migrations] Use :migration_primary_key in create/1
- [ecto] Upgrade and support Ecto v3.3
- [repo] Include
:idle_time
on telemetry measurements - [migration] Support anonymous functions in
Ecto.Migration.execute/2
- [migration] Ensure that flush() will raise on rollback if called from
change/0
- [mysql] Support myxql v0.3
- [migration] Support anonymous functions in execute
- [mix ecto.create] Change default charset in MyXQL to utf8mb4
This new version requires Elixir v1.6+. Note also the previously soft-deprecated Ecto.Adapters.MySQL
has been removed in favor of Ecto.Adapters.MyXQL
. We announced the intent to remove Ecto.Adapters.MySQL
back in v3.0 and Ecto.Adapters.MyXQL
has been tested since then and ready for prime time since v3.1.
- [sql] Use
get_dynamic_repo
on SQL-specific functions - [sql] Respect
Ecto.Type.embed_as/2
choice when loading/dumping embeds (Ecto 3.2+ compat) - [sql] Support CTE expressions (Ecto 3.2+ compat)
- [sql] Fix generated "COMMENT ON INDEX" for PostgreSQL
- [sql] Set
cache_statement
forinsert_all
- [migration] Add
@disable_migration_lock
to be better handle concurrent indexes - [mysql] Set
cache_statement
for inserts
- [mysql] Deprecate Ecto.Adapters.MySQL
- [migrator] Print warning message if concurrent indexes are used with migration lock
- [migrator] Add
--migrations-path
to ecto.migrate/ecto.rollback/ecto.migrations Mix tasks
- [migrator] Make sure an unboxed run is performed when running migrations with the ownership pool
- [migrator] Add
Ecto.Migrator.with_repo/2
to start repo and apps - [mix] Add
--skip-if-loaded
forecto.load
- [sql] Add
Ecto.Adapters.SQL.table_exists?/2
- [repo] Fix backwards incompatible change in Telemetry metadata
v3.1 requires Elixir v1.5+.
- [mysql] Introduce Ecto.Adapters.MyXQL as an alternative library for MySQL
- [migrations] Run all migrations in subdirectories
- [repo] Update to Telemetry v0.4.0 (note the measurements value differ from previous versions)
- [sandbox] Respect
:ownership_timeout
repo configuration on SQL Sandbox - [migrations] Commit and relock after every migration to avoid leaving the DB in an inconsistent state under certain failures
- [migrations] If you are creating indexes concurrently, you need to disable the migration lock:
config :app, App.Repo, migration_lock: nil
. This will migrations behave the same way as they did in Ecto 2.0.
- [repo] Add
:repo
and:type
keys to telemetry events - [migrations] Add
:add_if_not_exists
and:remove_if_exists
to columns in migrations
- [migrations] Load all migrations before running them
- [sandbox] Include
:queue_target
and:queue_interval
in SQL Sandbox checkout
- [repo] Bump telemetry dependency
- [migrations] Perform strict argument parsing in
ecto.migrate
,ecto.rollback
,ecto.load
andecto.dump
- [migrations] Do not log migration versions query
- [repo]
Telemetry.attach/5
andTelemetry.attach_many/5
are deprecated in favor of:telemetry.attach/5
and:telemetry.attach_many/5
- [migration] Support
after_begin
andbefore_commit
migration callbacks - [migration] Add
:prefix
option toreferences/2
- [migration] Do not start a transaction for migrated versions if there is no
:migration_lock
- [migration] Fix removing an reference column inside alter table
- [migration] Warn on removed
:pool_timeout
option
- [query] Support
Ecto.Query
ininsert_all
values - [migration] Add
Ecto.Migration.repo/0
- [migrations] Support
drop_if_exists
for constraints
- [migrations] Only commit migration transaction if migration can be inserted into the DB
- [migrations] Do not run migrations from
_build
when using Mix - [migrations] Improve errors when checking in already committed sandboxes
- [mysql] Do not pass nil for
--user
to mysqldump - [package] Require Ecto 3.0.2 with bug fixes
- [package] Require Mariaex 0.9.1 which fixes a bug when used with Ecto 3.0.2
- [sandbox] Raise when using sandbox on non-sandbox pools
- Initial release