The underlying issue was that query *always* committed, even during a transaction. The previous fix was to just disable commitAsync in a transaction but then that also disabled explicit commit calls. Instead, this fix disables query's commits during transactions so that explicit commits still work.
* Add ability to run migrate:up command to only run the next migration
* Add cli test for migrate:up
* Add test for migrator
* Add stub
* Add type
* Fix wording of test
* Fixed some of the tests failing with various dialect combinations
* Setup all test databases to run in docker
* Fixed test suite and updated travis to use docker
* Fixed some tests in master and disabled oracle tests while setting everything else to work again
* Changed docker to use latest postgresql alpine image
* Re-enabled all oracledb tests
* Install oracle client libs to oracle server and copy them to travis to make node oracledb package to work
* Disabled random failing oracle tests and added test to show that oracle update in transaction does not seem to work ACID
* Update package.json
* Update package.json
* Fixed linting issues
* Fixed waiting for postgres to use the same DB image that database is using.
* Removed installing oracledb driver in travis if not needed .travis.yml
* Cleaned up package.json more
* Created static name for oracledb container to allow copying files out of it on different docker versions
* Removed webpack from deps
* Fix rollback all bug attempting to perform rollback in chronological order
* Set up second migration to depend on first migration so when rolling back order is tests
* Add test for rollback all only running completed tests in reverse chronological order
* Add test to recreate the issue
* Improve test, add some documentation
* Improve test
* Add explicit nullable flag to column
* Set nullability explicitly on MySQL to deal with timestamp edge case
* Use same assertion for everything
* [#3033] fix: sqlite3 drop/renameColumn() breaks with postProcessResponse
* When postProcessResponse is configured, and client.processResponse()
returns a Promise (e.g. for custom cases such as sqlite3 dropColumn()),
then that Promise is not awaited, but handed to postProcessResponse,
which might break is (e.g. with Objection's knexSnakeCaseMappers()).
* when reinserting data in the modified table, the rows are now being
handled with the "mapped" identifiers (instead of the unmapped)
* add tests, fix hasColumn
* add hasColumn tests for add mysql + snakeCaseMappers
* Improve tests and fix more cases related to processing
* Fix SQLite-specific tests
* MySQL is not case-sensitive, pg is
* Add test for drop-and-recreate with async/await
* Add some tests with schema
* Use correct migrations
* Add tests with promise chains for comparison
* Fix migration
* Fix Node 6 compatibility
* MSSQL remove support column width/length on data type int
- fixes error `Cannot specify a column width on data type int`
- ignore length even if pass as agrument
* Add integration test for numeric lengths
* Fix syntax
* Add test that actually executes SQL
* Fix failing tests
* Fix tests
* Fix event listener duplication. Start executing more tests in CI; fix broken test.
* Fix listener
* Fix listener
* Fix Node 6 support
* There doesn't seem to be a clear way to fix listener behaviour in Node 6, so let's just ignore it for the time being, especially considering that we are dropping support for Node 6 in April anyway.
* Update migration guide