Mongock 5.0.28 is here! ๐
This release brings major new exciting functionalities and many small fixes and improvements.
ย ๐ก Highlights!
โ๏ธย DynamodDB
Mongock now supports DynamoDB as well! Use Mongock to make DDL and data migrations for DynamoDB databases. Documentation
๐ป Mongock CLI
Weโve released a Mongock CLI (Command Line Interface) to ease up your migration! You can now perform additional operations to perform and manage your migrations. Documentation
โ๏ธ ChangeUnits
ChangeUnits will give you more granular control over your migrations. Documentation
๐ช Before Executions and manual rollbacks
With ChangeUnits Mongock brings:
- BeforeExecution methods: which allow you to run changes out of the migration - specially useful for environments where DDL operations cannot be part of a migration.
- Manual rollbacks: useful for non-transactional environments. Documentation
ย ๐ฅณ What's new
๐ New functionalities
- DynamoDB: we now support migrations in DynamoDB as your Database!
- Mongock CLI: to interact with Mongock from a terminal.
- JDK17 support
- Before Executions and manual rollbacks: Mongock now supports operations out of the transaction scope and manual rollbacks
๐ค Improvements
- MongoDB: Upgraded MongoDB library versions to support latest MongoDB versions!
- MongoDB: Support of ClientSession to allow transactions in MongoDB standalone drivers.
- Performance: Improved Lock performance and Improved lock strategy to allow a easier and efficient configuration
- Observability: We store Migration errors in database for Audit purposes
- Migration: Non-transactional flag support for changes in transactional environments.
- Migration: Dependency injections at constructor level in ChangeUnits.
- Spring: Support to inject Spring MongoTemplate.(MongockTemplate deprecated)
- New Documentation released! Mongock Docs for more detailed info.
- And better project examples.
โ ๏ธ Breaking changes
ChangeUnit in favour of ChangeSets / ChangeLogs:
ChangeUnits will give you more granular control over your migrations.
- Rollbacks for non-transactional environments;
- Setting up data prior to migration executions with the @BeforeExecution annotations.
We've maintained ChangeSets and ChangeLogs for backwards compatibility, but from Release 5 - only ChangeUnits should be used.
๐ Bug fixes
@Configuration
annotation on the MongockSpringConfiguration prevent to use spring-native(#417), issued by @olivierboudet- Handle long I/O operation that can potentially lose the lock(#403), issued by @miroslavvojtus
- Fixed case sensitive in
mongock.runner-type
(#365), issued by @tomolse - migrationRepositoryName and LockRepositoryName wasnโt updated with setter(#413), issued by @dieppa
- FIxed bug that allowed different changeSets having the same id(#390), issued by @dieppa
- Fixed transaction bug with MongoDB standalone driver(#375), issued by @dhivesh
๐งน House keeping
- Upgraded Reflections library(#387) issued by @bpfoster and @altzii
- Removed ChangeEntry Generic(#408)
- Replaced
change-log-scan-packages
bymigration-scan-package
(#393) - Improved Lock proxy
- Removed MongoDB decorators
๐ข Link and list of issues:
- Issue 225 by @dieppa in #244
- Issue 240 by @dieppa in #245
- Release/4.1.17 skipmigration if no changesets to run by @dieppa in #249
- Events by @dieppa in #265
- Bump junit from 4.12 to 4.13.1 in /mongock-standalone by @dependabot in #258
- Bump junit from 4.12 to 4.13.1 in /mongock-spring-v5 by @dependabot in #257
- Bump junit from 4.12 to 4.13.1 in /drivers/mongodb-driver-test-template by @dependabot in #259
- Codacy refactor 1 by @dieppa in #266
- Release 4 2 1 by @dieppa in #267
- Started event by @dieppa in #271
- Issue 628 by @dieppa in #272
- Runners agnostic by @dieppa in #276
- Add a Codacy badge to README.md by @codacy-badger in #277
- Properties autocompletion by @dieppa in #278
- Changock 1.2.4 by @dieppa in #279
- updated changock_1_2_6 by @dieppa in #282
- Upgrade maven versions 1 by @dieppa in #283
- Mongock core by @dieppa in #284
- Issue 260/forcing consistency by @dieppa in #286
- 4.3.0 release by @dieppa in #289
- Fix mongock core 2 0 0 beta by @dieppa in #292
- Refactor bom versions by @dieppa in #297
- Issue/294 custom write read preference by @dieppa in #301
- Update CONTRIBUTING.md by @AJM10565 in #299
- wip by @dieppa in #304
- Issue/303 by @dieppa in #306
- Create CODE_OF_CONDUCT.md by @dieppa in #311
- Add the hostname of executor by @olivierboudet in #323
- Deveops/release pipeline by @dieppa in #325
- Refactor/remove changock packages by @osantana85 in #327
- Refactor/import integration test module by @dieppa in #328
- updated lock strategy by @dieppa in #332
- Removed forbidden parameter "MongoTemplate" from spring data drivers. by @osantana85 in #338
- Renamed packages from "com.github.cloudyrock.springboot.v2_2" to "com.github.cloudyrock.springboot.v2_4" by @osantana85 in #339
- Feature/rollback changelog pro by @dieppa in #340
- Minor fixes by @osantana85 in #341
- Added springboot dependency after been removed from mongock-api by @osantana85 in #342
- Fixed core packages renamed by @osantana85 in #343
- Refactor/spring dependencies by @dieppa in #344
- Fixed pom version missing + javadoc warnings. by @osantana85 in #345
- updated tests by @dieppa in #346
- fix compilation tests by @dieppa in #347
- fix compilation tests by @dieppa in #348
- Generalized MongoSync4Driver to share specific code in inherited classes. by @osantana85 in #349
- fixed tests by @dieppa in #350
- Generalized MongoCore3Driver, SpringDataMongoV2Driver and SpringDataMongoV3Driver to share specific code in inherited classes. by @osantana85 in #351
- Extracted base classes for springdata driver contexts (v2 + v3) by @osantana85 in #353
- saveOrUpdate by @dieppa in #354
- wip by @dieppa in #356
- Feature/dynamic proxy by @dieppa in #357
- Refactor/jdbc driver by @dieppa in #358
- Refactor/driver initialization by @dieppa in #364
- Fix/transaction mongodb standalone by @dieppa in #368
- fix by @dieppa in #369
- api by @dieppa in #370
- Added new method "getExecuted" to optimize checks of already executed change entries. by @osantana85 in #372
- Test/rollback before by @dieppa in #373
- applied changes in tests for fixed driver preparation for migration sโฆ by @dieppa in #374
- added ClientSession to ChangeLogRepository to rollback changeEntries by @dieppa in #375
- refactored packages and groupId by @dieppa in #376
- Refactor/decprecate mongock template by @dieppa in #377
- version 5 upgrade document by @dieppa in #378
- wip by @dieppa in #380
- wip by @dieppa in #382
- Feature/change unit by @dieppa in #384
- Refactor/unique community repository by @dieppa in #388
- fixed by @dieppa in #390
- Cli configuration by @dieppa in #392
- Refactor/dependency manager proxeable by @dieppa in #391
- Replaced "change-logs-scan-package" to "migration-scan-package". by @osantana85 in #393
- Remove decorators by @dieppa in #394
- Remove decorators by @dieppa in #395
- runner bean not injected when cli profile by @dieppa in #396
- change type by @dieppa in #397
- fixed tests by @dieppa in #398
- Feature/lock keeper daemon by @dieppa in #404
- Refactor/get executed by @dieppa in #405
- Refactor/get executed part2 by @dieppa in #406
- Issue/17#reflections lib update to 0.10.1 by @dieppa in #401
- Feature/change unit transactional flag by @dieppa in #407
- Refactor/remove changeentry generic by @dieppa in #408
- Removed unused imports. by @osantana85 in #409
- fixed bug by @dieppa in #413
- fixed by @dieppa in #414
- Remove useless @configuration on MongockSpringConfiguration and causes issues with spring-native by @olivierboudet in #419
- Refactor to add new "state" operation. by @osantana85 in #415
- Dynamodb by @dieppa in #420
- removed @configuration annotation by @dieppa in #421
- storing error in changeEntry by @dieppa in #422
- Issue/416/java 17 by @dieppa in #423
- test build 8 and 17 by @dieppa in #424
- fixed introduced bug in LockProxy with TypeVariable by @dieppa in #426
- dynamod beta version by @dieppa in #425
- default values: METHOD + RETRURN by @dieppa in #427
- non proxyable type from driver by @dieppa in #428
- refactor/error-trace-rollback by @dieppa in #430
- fixed tests by @dieppa in #431
- transactional flag make not prepareForStageExecutionIfApply by @dieppa in #432
- feature/dynamodb by @dieppa in #433
- refactor/dynamodb_importer by @dieppa in #434
- Refactor/mongock bom renamed by @dieppa in #435
- removed importers by @dieppa in #436
Full Changelog: 4.1.15...mongock-5.0.28