Formalize post-install/upgrade tasks and fix version-only upgrades.
Review Request #11339 — Created Dec. 17, 2020 and submitted
We have a few tasks that must be completed during an install or upgrade.
One is to register new SCMTools, and the other is to update the version
stored in the siteconfig.With Django 1.6 times, we'd accomplish these by registering
post_syncdb
signal handlers that would execute the necessary database
code, which made sense initially, but it meant that we had little
control over the order of operations. It also wasn't future-proof.Given how installs/upgrades work now, we'd never get the equivalent
modern signals if we didn't need to perform a database upgrade. We'd
determine that no changes were made to the database, and simply skip the
process that would ultimately emit the signal.Now, we have a dedicated function and signal for post-install/upgrade
steps. This registers SCMTools, updates the version in the database,
and emits a signal for any further tasks.This is called both by
rb-site
andmanage.py upgrade
. It will not
be called with a simpleevolve --execute
.A new
manage.py createdb
command has been added to help with the
installation side of this for development servers.
Tested creating and upgrading sites using
rb-site
. Verified the
resulting database entries.Tested creating using
manage.py createdb
. Verified the database
entries.Tested upgrading using
manage.py upgrade
. Verified the database
entries.Unit tests passed.
- Change Summary:
-
Added an explicit import. Apparently, the
signals
import was coming in from somewhere (initialize()
perhaps), though I don't understand how. - Commits:
-
Summary ID 701035326b8f7f0ce2eb5636fdb518831d9fd804 17cf7c645d4b2b6046760eca46b5e06493b91227 - Diff:
-
Revision 2 (+150 -162)
Checks run (2 succeeded)
- Change Summary:
-
Changed the "Upgrading to ..." message to "Upgraded to ...", and localized it.
- Commits:
-
Summary ID 17cf7c645d4b2b6046760eca46b5e06493b91227 83c492f8e026853f4b5bd91a6047180948136316 - Diff:
-
Revision 3 (+166 -166)
- Change Summary:
-
Fixed a Review Bot complaint.
- Commits:
-
Summary ID 83c492f8e026853f4b5bd91a6047180948136316 aab9fb98aa2bfbbce512d6dbd32e167d1bdaecdc - Diff:
-
Revision 4 (+168 -166)