Created
March 13, 2015 12:18
-
-
Save inirudebwoy/7eb2d74ea950c38559e5 to your computer and use it in GitHub Desktop.
Django 1.7+ migration for creating superuser
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# -*- coding: utf-8 -*- | |
from __future__ import unicode_literals | |
from django.db import migrations | |
from django.contrib.auth.admin import User | |
def create_superuser(apps, schema_editor): | |
superuser = User() | |
superuser.is_active = True | |
superuser.is_superuser = True | |
superuser.is_staff = True | |
superuser.username = 'admin' | |
superuser.email = '[email protected]' | |
superuser.set_password('admin') | |
superuser.save() | |
class Migration(migrations.Migration): | |
dependencies = [ | |
] | |
operations = [ | |
migrations.RunPython(create_superuser) | |
] |
thanks
Adding this :
dependencies = [
('auth', '0001_initial')
]
in the migrations allowed me to execute this migration on database creation with the base django user model.
I also had to add this line:
superuser.last_login = datetime.datetime.now()
to prevent a non-NULL constraint in that case.
improved version:
import os
from django.db import migrations
from django.utils import timezone
from django.contrib.auth import get_user_model
def create_superuser(apps, schema_editor):
superuser = get_user_model()(
is_active=True,
is_superuser=True,
is_staff=True,
username=os.environ['ADMIN_USERNAME'],
email=os.environ['ADMIN_EMAIL'],
last_login=timezone.now(),
)
superuser.set_password(os.environ['ADMIN_PASSWORD'])
superuser.save()
class Migration(migrations.Migration):
dependencies = []
operations = [migrations.RunPython(create_superuser)]
Hello, can you help me? I added this file but I don't know how to use it to create the super user, help ahaha
@virginia-garcia you need to add the file to your Django migrations/
folder and run python manage.py migrate
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Thanks, this is really help me out