which was a 1.7 release blocker and holding up additional 1.7 testing for a project
I'm currently working on. Upon diving in I saw that the checks for un-applied migrations
were tied to the runserver command. I thought to myself that this
seemed more appropriate for the new system checks framework. I assumed that it
hadn't been done this way originally because Andrew's work on migrations was running
parallel to the system checks. I figured while I was fixing the issue at hand it
would make sense to migrate (if you'll excuse the pun) this check to the new framework.
After all the stated goal of these checks was to detecting common problems
(such as un-applied migrations) and give hints on how to fix them (such as "you should run migrate").
While the documentation for writing new checks was somewhat lacking, I was able
However, this change created some issues I didn't foresee when writing or testing
this through Django's test suite. In particular this warning for un-applied migrations
was triggered when running the tests for a project and when running the migrate command
itself. Obviously if one is running migrate to resolve the problem they don't need
to be told to run migrate. It seemed to me that there would/should be a way to suppress
these checks for these cases and the issue here was a shortcoming of the system
check framework (or my understand of how to use it). Instead my work was reverted
in favor of restoring the check only in the runserver command. Andrew's comment in
the ticket seemed to indicate that I was misunderstanding the purpose of the system
checks and that this check for un-applied migrations did not fit into its purpose.
My questions for this list are:
Should the check for un-applied migrations work within the new system checks framework?
If so, how can we address this issue that in my original implementation these checks
are shown when they are clearly not needed such as when running migrate?
If not, can I get some more clarity on the purpose of these system checks?
Thanks,
Mark