How can my Model primary key start with a specific number?

the way is the same as to do datamigrations with RAW_SQL, change APPNAME on your:

python manage.py makemigrations APPNAME --empty

inside the created file:

operations = [
    migrations.RunSQL(
        'ALTER SEQUENCE APPNAME_USER_id_seq RESTART WITH 10000;'
    )
]

The solution is to set autoincrement field like:

user_id = models.AutoField(primary_key=True)

After this, you can run this command on the database side. You can run this python command by using signals:

ALTER SEQUENCE user_id RESTART WITH 10000;

You can do this by different method.

from django.db.models.signals import post_syncdb
from django.db import connection, transaction
cursor = connection.cursor()
cursor = cursor.execute(""" ALTER SEQUENCE user_id RESTART WITH 10000; """)
transaction.commit_unless_managed()

post_syncdb.connect(auto_increment_start, sender=app_models)

In Django, a model can't have more than one AutoField. And this is used to set a primary key different from the default key.

Tags:

Python

Django