Add a new 'upgrade' command for local development.

Review Request #10244 — Created Oct. 19, 2018 and submitted — Latest diff uploaded

Information

Review Board
release-3.0.x
f4844ee...

Reviewers

The new manage.py upgrade command takes care of running syncdb and
evolve, running both in the same session so that we can take advantage
of the new protection from extension database modifications interfering
with the upgrade process.

This new command is also more helpful, providing confirmation before
making any changes, and automatically backing up the configured SQLite
database (if used) so that the user can easily revert back. The backup
is stored at the location of the original database, with a timestamp
appended.

Backup behavior can be turned off with --no-backup, and confirmation
can be turned off with --noinput.

Tested this with default behavior on SQLite3 and MySQL. Verified that
upgrades occurred with SQLite3.

Tested both --no-backup and --no-input.