Support for SQLALchemy transactions
Added ability to use SQLAlchemy transactions in ahjo actions and ahjo-upgrade. To enable transactions, set `context_connectable_type` to `connection` in project config file. The transaction management style can be defined with `transaction_mode` setting. If `transaction_mode` is set to `begin_once`, a transaction is started before running actions and committed after all actions are run. If `transaction_mode` is set to `commit_as_you_go`, a transaction is started before running actions but not committed automatically. Ahjo master actions support transactions, but custom actions need to be modified if transactions are used. See `ahjo.scripts.master_actions.py` for examples.
Database collation check
Ahjo displays database collation information before running actions. If the defined collation is different from the database collation, a warning is logged. The database collation check is enabled by default. The check can be disabled by setting `display_db_info` to `false` in project config file.
Non-interactive mode
Added ability to run ahjo actions in non-interactive mode. Non-interactive mode can be enabled with `-ni` or `--non-interactive` flag.
commentjson package dependency to optional
`commentjson` python package is now optional. If commentjson is not installed, only JSON config files are supported. To install ahjo with commentjson package, use `pip install ahjo[jsonc]` command.
Reload actions in ahjo-upgrade
In previous versions, `ahjo-upgrade` command did not reload actions from `ahjo_actions.py` file. This caused problems when ahjo actions were modified between different versions. `ahjo-upgrade` now reloads actions on each version upgrade.
Maximum execution time for Bitbucket Pipelines
Added maximum execution time for Bitbucket Pipelines. The maximum execution time is 5 minutes.