CHANGELOG.md (11933B)
1 # Changelog for v3.x 2 3 ## v3.9.0 (2022-09-27) 4 5 ### Enhancements 6 7 * [migrations] Support `primary_key` configuration options in `table` 8 * [migrations] Add `:nulls_distinct` option for unique indexes 9 * [postgres] Support the use of advisory locks for migrations 10 * [sql] Add `dump_cmd` to `postgrex` and `myxql` adapters 11 * [sql] Log human-readable UUIDs by using pre-dumped query parameters 12 * [sql] Support select aliases from `selected_as/1` and `selected_as/2` 13 * [telemetry] Emit `schema_migration: true` under `telemetry_options` 14 15 ## v3.8.3 (2022-06-04) 16 17 ### Enhancements 18 19 * [sql] Implement `literal/1` support in fragments 20 21 ## v3.8.2 (2022-05-18) 22 23 ### Bug fixes 24 25 * [postgres] Fix possible breaking change on `json_extract_path` for boolean values introduced in v3.8.0 26 * [sql] Colorize stacktrace and use `:` before printing line number 27 28 ## v3.8.1 (2022-04-29) 29 30 ### Bug fixes 31 32 * [mysql] Raise on a subquery with parameter on MySQL join 33 * [sql] Do not invoke dynamic repositories in direct `Ecto.Adapters.SQL` operations 34 35 ## v3.8.0 (2022-04-26) 36 37 ### Enhancements 38 39 * [migrations] Support `--to-exclusive` in `mix ecto.migrate` and `mix ecto.rollback` 40 * [mysql] Add `:comment` support on MySQL migrations 41 * [postgres] Support `:prepare` option per operation 42 * [postgres] Optimize `json_extract_path` comparisons in PostgreSQL 43 * [sql] Optionally log last known call, publish stacktrace in telemetry 44 * [telemetry] Include `:repo` option in telemetry events 45 46 ### Bug fixes 47 48 * [sql] Ensure `:timeout` option is respected in `Ecto.Adapters.SQL.explain/3` 49 50 ## v3.7.2 (2022-01-23) 51 52 ### Enhancements 53 54 * [adapters] Support latest `myxql` and `postgrex` 55 56 ## v3.7.1 (2021-10-12) 57 58 ### Enhancements 59 60 * [migrations] Add `:cascade` option to `drop` 61 * [migrations] Support `--prefix` in `mix ecto.migrations` 62 * [migrations] Add `--log-migrator-sql` and `--log-migrations-sql` 63 * [mysql] Cache more insert/update queries and allow `:cache_statement` to be set 64 * [mssql] Support more recent tds versions 65 66 ### Bug fixes 67 68 * [migrations] Consider the database prefix when locking tables 69 70 ## v3.7.0 (2021-08-19) 71 72 ### Enhancements 73 74 * [mysql] Support lateral joins 75 76 ### Bug fixes 77 78 * [sql] Fix CTE subqueries not finding parent bindings 79 80 ## v3.6.2 (2021-05-28) 81 82 ### Bug fixes 83 84 * [migration] Improve error message on invalid migration type 85 * [postgres] Avoid duplicate order_by with distinct 86 * [sql] Implement new checked_out? callback required by latest Ecto 87 88 ## v3.6.1 (2021-04-12) 89 90 ### Bug fixes 91 92 * [migrations] Ensure migration_source option is respected in PostgreSQL adapter 93 94 ## v3.6.0 (2021-04-03) 95 96 ### Bug fixes 97 98 * [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 99 100 ### Enhancements 101 102 * [migrations] Allow generating migrations from within umbrella app 103 * [postgres] Add `:format` option to PostgreSQL explain 104 * [postgres] Support `:socket_dir` connection option when using `mix ecto.load` or `mix ecto.dump` 105 * [sandbox] Support locally registered processes in `allow/3` 106 * [storage] Do not fail `storage_up` if the user has access to an already-created database 107 * [tds] Support for `:inner_lateral` and `:left_lateral` 108 109 ## v3.5.4 (2020-01-20) 110 111 ### Enhancements 112 113 * [mysql] Support defaults for JSON columns 114 * [postgres] Allow Postgrex v1.0 115 116 ## v3.5.3 (2020-10-27) 117 118 ### Enhancements 119 120 * [migrations] Pass `:schema_migration` option to repo operations for `prepare_query` checks 121 * [psql] Support `:force_drop` configuration to force a DB to be dropped 122 123 ## v3.5.2 (2020-10-24) 124 125 ### Enhancements 126 127 * [migrations] Support `:with` option in `references` for composite foreign keys 128 * [migrations] Support `:match` option in `references` 129 * [tds] Support TDS 3-part and 4-part prefixes 130 131 ## v3.5.1 (2020-10-12) 132 133 ### Enhancements 134 135 * [tds] Support explain plan for the TDS adapter 136 137 ### Bug fix 138 139 * [migrations] Reload all migrations once the lock is free to avoid running the same migration more than once 140 * [query] Support nested subqueries 141 142 ## v3.5.0 (2020-10-03) 143 144 ### Enhancements 145 146 * [migrations] Add option to skip schema migrations table checks 147 * [migrations] Add `:migration_repo` configuration to allow a different repository to host the schema migrations 148 * [migrations] Support `validate: false` on references and constraints 149 * [migrations] Accept `:migration_primary_key` as false and add `:migration_foreign_key` repo config 150 * [postgres] Support for `:identity` key types in Postgres 10 or later 151 * [postgres] Use IF NOT EXIST when creating index with `create_if_not_exists`, this requires PG 9.5+ or later 152 * [repo] Support `Repo.explain(:all | :update_all | :delete_all, query)` for Ecto adapters 153 * [sandbox] Allow for dynamic repos to be checked out in sandbox 154 155 ### Bug fixes 156 157 * [migrations] Flush migration commands before executing `before_commit` callback 158 * [migrations] Do not swallow errors when migration lock is disabled 159 160 ## v3.4.5 (2020-07-05) 161 162 ### Bug fixes 163 164 * [ecto] Fix warnings on Elixir v1.11 165 * [migrations] Migration prefix should have higher preference than `default_options` 166 167 ## v3.4.4 (2020-05-19) 168 169 ### Enhancements 170 171 * [sandbox] Add `Ecto.Adapters.SQL.start_owner!/2` and `Ecto.Adapters.SQL.stop_owner/1` 172 * [myxql] Decode BIT columns when using MyXQL and `:boolean` type 173 * [migrations] Use one line per migration in the schema dump 174 175 ## v3.4.3 (2020-04-27) 176 177 ### Bug fixes 178 179 * [ecto] Support `as` and `parent_as` from Ecto v3.4.3+ 180 * [ecto] Support `x in subquery(query)` from Ecto v3.4.3+ 181 182 ## v3.4.2 (2020-04-02) 183 184 ### Bug fixes 185 186 * [myxql] A binary with size should be a varbinary 187 * [mssql] A binary without size should be a varbinary(max) 188 189 ## v3.4.1 (2020-03-25) 190 191 ### Bug fixes 192 193 * [myxql] Assume the reference does not change in MyXQL and prepare for v0.4.0 194 195 ## v3.4.0 (2020-03-24) 196 197 ### Enhancements 198 199 * [adapters] Support Ecto's v3.4 `json_extract_path/2` 200 * [migrations] Support multiple migration paths to be given with `--migration-path` 201 * [mssql] Add built-in support to MSSQL via the TDS adapter 202 * [repo] Support custom options on telemetry 203 204 ## v3.3.4 (2020-02-14) 205 206 ### Enhancements 207 208 * [adapters] Support fragments in locks 209 * [migration] Add `:include` option to support covering indexes 210 211 ## v3.3.3 (2020-01-28) 212 213 ### Enhancements 214 215 * [myxql] Allow not setting the encoding when creating a database 216 217 ### Bug fixes 218 219 * [myxql] Removing prefixed table name from constraints on latest MySQL versions 220 * [sql] Fix precedence of `is_nil` when inside a comparison operator 221 222 ## v3.3.2 (2019-12-15) 223 224 ### Bug fixes 225 226 * [adapters] Start StorageSupervisor before using it 227 228 ## v3.3.1 (2019-12-15) 229 230 ### Bug fixes 231 232 * [adapters] Do not leak PIDs on storage commands 233 * [migrations] Use :migration_primary_key in create/1 234 235 ## v3.3.0 (2019-12-11) 236 237 ### Enhancements 238 239 * [ecto] Upgrade and support Ecto v3.3 240 * [repo] Include `:idle_time` on telemetry measurements 241 * [migration] Support anonymous functions in `Ecto.Migration.execute/2` 242 243 ### Bug fixes 244 245 * [migration] Ensure that flush() will raise on rollback if called from `change/0` 246 247 ## v3.2.2 (2019-11-25) 248 249 ### Enhancements 250 251 * [mysql] Support myxql v0.3 252 253 ## v3.2.1 (2019-11-02) 254 255 ### Enhancements 256 257 * [migration] Support anonymous functions in execute 258 259 ### Bug fixes 260 261 * [mix ecto.create] Change default charset in MyXQL to utf8mb4 262 263 ## v3.2.0 (2019-09-07) 264 265 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. 266 267 ### Enhancements 268 269 * [sql] Use `get_dynamic_repo` on SQL-specific functions 270 * [sql] Respect `Ecto.Type.embed_as/2` choice when loading/dumping embeds (Ecto 3.2+ compat) 271 * [sql] Support CTE expressions (Ecto 3.2+ compat) 272 273 ### Bug fixes 274 275 * [sql] Fix generated "COMMENT ON INDEX" for PostgreSQL 276 277 ## v3.1.6 (2019-06-27) 278 279 ### Enhancements 280 281 * [sql] Set `cache_statement` for `insert_all` 282 283 ## v3.1.5 (2019-06-13) 284 285 ### Enhancements 286 287 * [migration] Add `@disable_migration_lock` to be better handle concurrent indexes 288 * [mysql] Set `cache_statement` for inserts 289 290 ### Deprecations 291 292 * [mysql] Deprecate Ecto.Adapters.MySQL 293 294 ## v3.1.4 (2019-05-28) 295 296 ### Enhancements 297 298 * [migrator] Print warning message if concurrent indexes are used with migration lock 299 300 ## v3.1.3 (2019-05-19) 301 302 ### Enhancements 303 304 * [migrator] Add `--migrations-path` to ecto.migrate/ecto.rollback/ecto.migrations Mix tasks 305 306 ### Bug fixes 307 308 * [migrator] Make sure an unboxed run is performed when running migrations with the ownership pool 309 310 ## v3.1.2 (2019-05-11) 311 312 ### Enhancements 313 314 * [migrator] Add `Ecto.Migrator.with_repo/2` to start repo and apps 315 * [mix] Add `--skip-if-loaded` for `ecto.load` 316 * [sql] Add `Ecto.Adapters.SQL.table_exists?/2` 317 318 ## v3.1.1 (2019-04-16) 319 320 ### Bug fixes 321 322 * [repo] Fix backwards incompatible change in Telemetry metadata 323 324 ## v3.1.0 (2019-04-02) 325 326 v3.1 requires Elixir v1.5+. 327 328 ### Enhancements 329 330 * [mysql] Introduce Ecto.Adapters.MyXQL as an alternative library for MySQL 331 * [migrations] Run all migrations in subdirectories 332 * [repo] Update to Telemetry v0.4.0 (note the measurements value differ from previous versions) 333 334 ### Bug fixes 335 336 * [sandbox] Respect `:ownership_timeout` repo configuration on SQL Sandbox 337 * [migrations] Commit and relock after every migration to avoid leaving the DB in an inconsistent state under certain failures 338 339 ### Backwards incompatible changes 340 341 * [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. 342 343 ## v3.0.5 (2019-02-05) 344 345 ### Enhancements 346 347 * [repo] Add `:repo` and `:type` keys to telemetry events 348 * [migrations] Add `:add_if_not_exists` and `:remove_if_exists` to columns in migrations 349 350 ### Bug fixes 351 352 * [migrations] Load all migrations before running them 353 * [sandbox] Include `:queue_target` and `:queue_interval` in SQL Sandbox checkout 354 355 ## v3.0.4 (2018-12-31) 356 357 ### Enhancements 358 359 * [repo] Bump telemetry dependency 360 * [migrations] Perform strict argument parsing in `ecto.migrate`, `ecto.rollback`, `ecto.load` and `ecto.dump` 361 362 ### Bug fixes 363 364 * [migrations] Do not log migration versions query 365 366 ### Deprecations 367 368 * [repo] `Telemetry.attach/5` and `Telemetry.attach_many/5` are deprecated in favor of `:telemetry.attach/5` and `:telemetry.attach_many/5` 369 370 ## v3.0.3 (2018-11-29) 371 372 ### Enhancements 373 374 * [migration] Support `after_begin` and `before_commit` migration callbacks 375 * [migration] Add `:prefix` option to `references/2` 376 377 ### Bug fixes 378 379 * [migration] Do not start a transaction for migrated versions if there is no `:migration_lock` 380 * [migration] Fix removing an reference column inside alter table 381 * [migration] Warn on removed `:pool_timeout` option 382 383 ## v3.0.2 (2018-11-20) 384 385 ### Enhancements 386 387 * [query] Support `Ecto.Query` in `insert_all` values 388 * [migration] Add `Ecto.Migration.repo/0` 389 390 ## v3.0.1 (2018-11-17) 391 392 ### Enhancements 393 394 * [migrations] Support `drop_if_exists` for constraints 395 396 ### Bug fixes 397 398 * [migrations] Only commit migration transaction if migration can be inserted into the DB 399 * [migrations] Do not run migrations from `_build` when using Mix 400 * [migrations] Improve errors when checking in already committed sandboxes 401 * [mysql] Do not pass nil for `--user` to mysqldump 402 * [package] Require Ecto 3.0.2 with bug fixes 403 * [package] Require Mariaex 0.9.1 which fixes a bug when used with Ecto 3.0.2 404 * [sandbox] Raise when using sandbox on non-sandbox pools 405 406 ## v3.0.0 (2018-10-29) 407 408 * Initial release