Opened 3 days ago
Last modified 2 days ago
#36016 assigned Cleanup/optimization
Avoid traceback when quitting makemigrations with Ctrl-C — at Version 3
Reported by: | Adam Johnson | Owned by: | |
---|---|---|---|
Component: | Migrations | Version: | dev |
Severity: | Normal | Keywords: | |
Cc: | Triage Stage: | Accepted | |
Has patch: | yes | Needs documentation: | no |
Needs tests: | yes | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description (last modified by )
Sometimes makemigration
asks you questions with its “questioner”. If you realize that you missed something due to these questions, you might want to quit with Ctrl-C and edit your models file before rerunning.
Currently, such a quit triggers Python’s default traceback:
$ ./manage.py makemigrations example It is impossible to add a non-nullable field 'title' to book without specifying a default. This is because the database needs something to populate existing rows. Please select a fix: 1) Provide a one-off default now (will be set on all existing rows with a null value for this column) 2) Quit and manually define a default value in models.py. Select an option: ^CTraceback (most recent call last): File "/.../manage.py", line 21, in <module> main() ~~~~^^ ... ... ... File "/.../django/db/migrations/questioner.py", line 169, in ask_not_null_addition choice = self._choice_input( f"It is impossible to add a non-nullable field '{field_name}' " ...<10 lines>... ], ) File "/Users/chainz/tmp/django-makemigrations-ctrl-c/.venv/lib/python3.13/site-packages/django/db/migrations/questioner.py", line 114, in _choice_input result = input() KeyboardInterrupt
This isn’t very user-friendly: it seems like maybe you broke Django, and it pushes the question up out of the terminal window.
Instead, we could quit with minimal output, perhaps a simple message like:
Select an option: ^C Cancelled.
If there's a message, it should probably use the notice style.
Change History (3)
comment:1 by , 3 days ago
Description: | modified (diff) |
---|
comment:2 by , 3 days ago
Description: | modified (diff) |
---|
comment:3 by , 3 days ago
Description: | modified (diff) |
---|