Refactor our migrate command monkeypatching

This commit is contained in:
Raphael Michel
2021-09-17 10:01:23 +02:00
parent 364cfe0131
commit adf40e1d56
3 changed files with 59 additions and 53 deletions

View File

@@ -32,22 +32,25 @@
# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under the License.
"""
Django tries to be helpful by suggesting to run "makemigrations" in red font on every "migrate"
run when there are things we have no migrations for. Usually, this is intended, and running
"makemigrations" can really screw up the environment of a user, so we want to prevent novice
users from doing that by going really dirty and filtering it from the output.
"""
import sys
from django.core.management.base import OutputWrapper
from django.core.management.commands.migrate import Command as Parent
from ._migrations import monkeypatch_migrations
monkeypatch_migrations()
class OutputFilter(OutputWrapper):
"""
Django tries to be helpful by suggesting to run "makemigrations" in red font on every "migrate"
run when there are things we have no migrations for. Usually, this is intended, and running
"makemigrations" can really screw up the environment of a user, so we want to prevent novice
users from doing that by going really dirty and filtering it from the output.
"""
banlist = (
"Your models have changes that are not yet reflected",
"Run 'manage.py makemigrations' to make new "
"have changes that are not yet reflected",
"re-run 'manage.py migrate'"
)
def write(self, msg, style_func=None, ending=None):