Take a look at this:
$ pypy ./manage.py syncdb /usr/lib64/pypy-2.4.0/site-packages/django/core/management/commands/syncdb.py:24: RemovedInDjango19Warning: The syncdb command will be removed in Django 1.9 warnings.warn("The syncdb command will be removed in Django 1.9", RemovedInDjango19Warning) (cut)
I ran a quick google search, but could not find the answer – what should I be using instead of
Now you can track your changes using
makemigrations. This transforms your model changes into python code to make them deployable to another databases. When you have further modifications you need applied to the database, you can use data migrations.
After you created the migrations you have to apply them:
So instead of using
syncdb you should use
makemigrations and then
Workflow on development after you changed something in your models:
./manage.py makemigrations ./manage.py migrate
And on your production system:
Bonus: you do not need to run
migrate for each change. If you have multiple changes not applied yet django will run them in the correct order for you.
You should definitely use migration system. Which lets you track changes in your
models.py, and create migrations for the database. The migration system uses the commands
makemigrations to create migrations and
migrate to migrate the database.
If for whatever reason you need to create a database the same way
syncdb did it there is command flag that causes
migrate to work the same way. You should only do this if you REALLY need it and you know what you are doing. For example to create an empty database on for a continuous integration system of your choice.
python manage.py migrate auth # performs migrations for auth and contenttypes contrib apps python manage.py migrate --run-syncdb # creates the rest of the database
Tested on Django 1.9.1.
You should use the
migrate commands that were introduced in django 1.7
syncdb has some problem with db migration. so, after django 1.7
migrate have been introduced.
Now in django 1.9
syncdb has been deprecated.
python manage.py makemigrations which detects changes in db and creates one
.py file as inside migrations folder
python manage.py migrate will apply the migrations to the database