64
votes

I'm trying to follow this tutorial but I'm stuck on the 5th step.

When I execute

[~/Django Projects/netmag$] python manage.py syncdb

I get the following error message :

Unknown command: 'syncdb'
Type 'manage.py help' for usage.

and here is the output of ./manage.py help does not contain syncdb command. How do I add it?

Thanks for any help!

Edit :

When I run migrate, I get this error :

"Error creating new content types. Please make sure contenttypes " RuntimeError: Error creating new content types. Please make sure contenttypes is migrated before trying to migrate apps individually.

in settings.py :

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.admindocs',
    'blog',
]

Edit 2:

If I remove 'blog', from settings.py :

:~/Django Projects/netmag$ python manage.py migrate blog
CommandError: App 'blog' does not have migrations. 

:~/Django Projects/netmag$ python manage.py makemigrations blog 
App 'blog' could not be found. Is it in INSTALLED_APPS?
4
Did you edit the INSTALLED_APPS setting? You should place your app after the all django apps in this list. BTW, I suggest you to use the official tutorial to learn the django: docs.djangoproject.com/en/1.7/intro/tutorial01 - catavaran
@catavaran Thanks. I will try this tutorial tomorrow. Also I'm adding the INSTALLED_APPS list to the question. - jeff

4 Answers

192
votes

syncdb command is deprecated in django 1.7. Use the python manage.py migrate instead.

12
votes

You have to use python manage.py migrate instead rather than python manage.py syncdb

12
votes

Run python manage.py makemigrations result below

Migrations for 'blog':
blog/migrations/0001_initial.py:
- Create model Blog

and after that run python manage.py migrate result below

Operations to perform:
Apply all migrations: admin, blog, auth, contenttypes, sessions
Running migrations:
Applying article.0001_initial... OK
0
votes

You can do it like this in stages, let's say you have an app called "example":

  1. Run python manage.py makemigrations example
  2. A number generates like '0001' get the number
  3. Run python manage.py sqlmigrate example 0001, using the number. Check out the scripts.
  4. Run python manage.py migrate example 0001

You can also look at all your migrations like this: python manage.py showmigrations.
If you don't want to commit it, go to the folder and move it somewhere or delete it before doing step 4.