Django manage.py Unknown command: 'syncdb'

PythonDjangoDjango SyncdbSyncdb

Python Problem Overview


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?

Python Solutions


Solution 1 - Python

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

Solution 2 - Python

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

Solution 3 - Python

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

Solution 4 - Python

the actual command is :

python manage.py migrate --run-syncdb

It will solve many errors in django like , Operational error ,No Table found in databse etc.

Solution 5 - Python

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.

Solution 6 - Python

However, there is another error that can be happened as strict mode needs to be enabled for MariaDB.

Keep Database connection in the settings.py file as follows:

DATABASES = {
'default': {
    'ENGINE': 'django.db.backends.mysql',
    'NAME': 'test',
    'USER': 'root',
    'PASSWORD': '',
    'HOST': 'localhost',   # Or an IP Address that your DB is hosted on
    'PORT': '3306',
    'OPTIONS': {
        'sql_mode': 'traditional',
    }
}

}

keep in mind about the below code:

'OPTIONS': {
        'sql_mode': 'traditional',
    }

After all, if your DJango version is backdated, "python manage.py syncdb" will work but for an updated version more than or equal to 1.7, please use "python manage.py migrate"

Thanks

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionjeffView Question on Stackoverflow
Solution 1 - PythoncatavaranView Answer on Stackoverflow
Solution 2 - Pythonsohil sharmaView Answer on Stackoverflow
Solution 3 - PythonKishore ChandraView Answer on Stackoverflow
Solution 4 - PythonSaikat MukherjeeView Answer on Stackoverflow
Solution 5 - PythonMarc GuvencView Answer on Stackoverflow
Solution 6 - PythonMd. Majharul HaqueView Answer on Stackoverflow