- Author:
- jpic
- Posted:
- September 17, 2017
- Language:
- Python
- Version:
- Not specified
- Score:
- 0 (after 0 ratings)
With this awesome manage.py, it will try to migrate first when called with runserver.
Also, this manege.py has super power to be used in your entry point as such:
entry_points = {
'console_scripts': [
# u haz a setup.py -> u haz importable module :)
'yourcommand = yourproject.manage:main',
],
},
Example output:
$ yourcommand runserver
Operations to perform:
Apply all migrations: auth, contenttypes, admin, sessions
Running migrations:
Rendering model states... DONE
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying auth.0007_alter_validators_add_error_messages... OK
Applying sessions.0001_initial... OK
Operations to perform:
Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
No migrations to apply.
Performing system checks...
Username (leave blank to use 'jpic'):
Email address: [email protected]
Password:
Password (again):
Superuser created successfully.
Welcome in 2017, where automation is king
System check identified no issues (0 silenced).
September 17, 2017 - 21:21:41
Django version 1.9.10, using settings 'crudlfap_example.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
Extra note: it doesn't matter if migrate crashes for now, since django runserver doesn't support not being able to connect to database. So most of the time I hope to shouldn't need to disable this hack.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | """Manage.py with auto migrate for runserver., also usable as entry_point"""
#!/usr/bin/env python
import os
import sys
def main():
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "YOUR_PROJECT.settings")
from django.core.management import call_command, execute_from_command_line
if sys.argv[1] == 'runserver':
import django
django.setup()
call_command('migrate')
from django.conf import settings
from django.apps import apps
User = apps.get_model(settings.AUTH_USER_MODEL)
if not User.objects.count():
call_command('createsuperuser')
execute_from_command_line(sys.argv)
if __name__ == "__main__":
main()
|
More like this
- Template tag - list punctuation for a list of items by shapiromatron 10 months, 2 weeks ago
- JSONRequestMiddleware adds a .json() method to your HttpRequests by cdcarter 10 months, 3 weeks ago
- Serializer factory with Django Rest Framework by julio 1 year, 5 months ago
- Image compression before saving the new model / work with JPG, PNG by Schleidens 1 year, 6 months ago
- Help text hyperlinks by sa2812 1 year, 6 months ago
Comments
Please login first before commenting.