- Update copyright years.
- Update Standards-Version to 4.7.2.
- Remove «Rules-Requires-Root: no» field, which is now the default.
- Remove «Priority: optional» field, which is now the default.
- Wrap and sort fields.
- Add spaces around operators in make variables.
Change-Id: I6f8436900ad5266c6dea910bbdda7aabf4dbc794
python3-flake8-polyfill is no longer available in debian/trixie
and therefore, it's good to stop using on it now. There is
also no logic in the project that relies on it.
Change-Id: Ibf69eaa9599adafc023c13aa9cd329618d0bca62
* add support for db_schema release column.
* a new command line option '--set-release'
* when .up scripts are applied - the db_schema release column
is set from either --set-release option or /etc/ngcp_version
as the fallback.
* the release column is updated for all applied scripts after
all of them are applied, that is to include revisions that
were applied by the script before the 'release' column.
applied_at timestamp is preserved to keep the original time
when the revision was applied.
* new command line options --get-release-info and --as-json:
when --get-release-info is specified - a table with
"release,min_revision,max_revision,count" is returned and
no scripts processing takes place. With --as-json the data
is returned as a JSON string instead (for possible parsing
automation purposes).
* new command line option --downgrade-release:
- mutually exclusve with --mode
- automatically enables --mode=down
- removes all revisions that match the specified release version
* fix --mode=down --batch-mode, add missing ';' between delete
and commit sql statements.
Change-Id: I529ab523d7886a94848f6d9bbcf4a0348d0842ef
* ngcp-update-db-schema is rewritten in python. that simplifies
the code, as well as enables flexibility and more complex features
support, as well as performance improvements
* full strict mypy compliant
* flake8 compliant
* google docstring complied
* add .down scripts support
* add docstring full documentation
* add mypy, isort, flake8 checks during build phase
* add command line arguments that support --to-revision, to stop
.up/.down scripts execution when it reaches a certain revision
* better support for ngcp-sync-db
* preserve AUTOMATED_INSTALL_MODE and SKIP_SYNC_DB env vars support
for backward compatibility, in the future it is recommented to
switch to the existing (--automated, --skip-ro-sync-db) options
* experimental batch mode support where instead of applying changes
one by one, they are accumulated into a file along with db_schema
revision tracking changes and applied at once
Change-Id: I4632393d52d1a60c945b4d87a779f1a073ed9a5f
I can't find any reason why we should Pre-Depend on ngcp-system-tools.
Since piupart fails to run because of the Pre-Dependency let's try
switching to Depends instead.
Change-Id: Ic3e64f765ed2dd860d03bdbb02f6e7103da627d9
This dramatically speeds up the ngcp-update-db-schema process if
everything has been applied already or if just a few single
scripts have to be executed.
Execution times for old mode vs new (batch) mode with all present
scripts executed already:
| root@spce:~# time { /usr/sbin/ngcp-update-db-schema.orig >/dev/null ; }
|
| real 0m53.281s
| user 0m45.439s
| sys 0m5.100s
vs.
| root@spce:~# time /usr/sbin/ngcp-update-db-schema
| [ ok ] Starting MySQL database server: mysqld already running.
| Synchronizing passwords with MySQL
|
| real 0m4.096s
| user 0m1.812s
| sys 0m0.472s
The main behaviour of ngcp-check-rev-applied hasn't been changed,
it's backwards compatible (so also cfg-schema which uses
ngcp-check-rev-applied continues to work as it is), now it's just
possible to provide multiple arguments to the "--revision" option
and its output is parsed by ngcp-update-db-schema then.
This makes reviews and diffs easier and helps in avoiding duplicate entries.
devscripts's wrap-and-sort ftw.
Closes: https://bugtracker.sipwise.com/view.php?id=1845
From: Michael Prokop <mprokop@sipwise.com>