Completely redo the way we install baselines after syncdb/migrate.
Review Request #10581 — Created June 7, 2019 and submitted — Latest diff uploaded
Historically, Django Evolution would set up its baselines (
Version
and
Evolution
entries) in response to a syncdb (and, in recent
development, migrate). Along with this, it would output messages saying
which apps needed to be evolved, and which baselines were being
installed. This was designed in part to help provide instructions, since
evolve
had to be run alongsidesyncdb
, and the order mattered.With the introduction of the
Evolver
, the entire process is designed
to be done in one command (evolve --execute
). There's no longer a need
to output any hints or to diff any signatures. The generation of
baselines can also be streamlined, and database writes optimized,
massively reducing unit test runs.Further, we no longer need or want to do this every time we react to
this signal. If anEvolver.evolve()
operation is running, then
baselines are already being managed, and there's no point in doing
anything at all. Instead, we only need to do this when we get these
signals outside of theEvolver
(such as during unit tests or database
flushes).
Unit tests pass on all supported versions of Django.