Add support for creating tables from models in EvolveAppTask.

Review Request #10567 — Created May 30, 2019 and submitted

Information

Django Evolution
master

Reviewers

EvolveAppTask now has the capability to install models in the
database, creating all the necessary tables for the models and any
related models (such as for many-to-many relations).

It does this by first checking whether we're evolving an app for the
first time, or whether we're adding a model for an existing app for the
first time. These models, and the SQL needed to install them, are
gathered during the preparation stage. All new models across all apps
are then installed during EvolveAppTask.execute_tasks, before
performing any evolutions for any apps.

EvolveAppTask.execute can also take a create_models_now boolean
parameter, which will force installation of models immediately. This
will be needed for the initial installation of the Django Evolution
models in an upcoming change.

Unit tests pass for SQLite, MySQL, and Postgres on Django 1.6 and 1.11.

Summary ID
Add support for creating tables from models in EvolveAppTask.
`EvolveAppTask` now has the capability to install models in the database, creating all the necessary tables for the models and any related models (such as for many-to-many relations). It does this by first checking whether we're evolving an app for the first time, or whether we're adding a model for an existing app for the first time. These models, and the SQL needed to install them, are gathered during the preparation stage. All new models across all apps are then installed during `EvolveAppTask.execute_tasks`, before performing any evolutions for any apps. `EvolveAppTask.execute` can also take a `create_models_now` boolean parameter, which will force installation of models immediately. This will be needed for the initial installation of the Django Evolution models in an upcoming change.
58fdc04955942ffb5a92eee95a4e7c788e8d793c
david
  1. Ship It!
  2. 
      
chipx86
Review request changed
Status:
Completed
Change Summary:
Pushed to master (f68d25c)