Django manage.py未知命令:' syncdb'

时间:2015-02-11 00:41:03

标签: python django django-syncdb syncdb

我正在尝试关注this tutorial,但我坚持第五步。

执行时

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

我收到以下错误消息:

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

这里是./manage.py help的输出不包含syncdb命令。我该如何添加它?

感谢您的帮助!

编辑:

当我运行迁移时,我收到此错误:

  

“创建新内容类型时出错。请确保内容类型”   RuntimeError:创建新内容类型时出错。请确认   在尝试单独迁移应用程序之前,会迁移contenttypes。

在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',
]

编辑2:

如果我从settings.py中移除'blog',

:~/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 个答案:

答案 0 :(得分:174)

django 1.7中的

syncdb命令为deprecated。请改用python manage.py migrate

答案 1 :(得分:12)

您必须使用python manage.py migrate而不是python manage.py syncdb

答案 2 :(得分:7)

下面运行 python manage.py makemigrations 结果
Migrations for 'blog':
blog/migrations/0001_initial.py:
- Create model Blog

并在此之后 python manage.py migrate 结果

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

答案 3 :(得分:0)

您可以分阶段执行此操作,假设您有一个名为“ example”的应用:

  1. 运行python manage.py makemigrations示例
  2. 生成的数字类似“ 0001”,得到该数字
  3. 使用数字运行python manage.py sqlmigrate示例0001。查看脚本。
  4. 运行python manage.py迁移示例0001

您还可以像这样查看所有迁移:python manage.py showmigrations
如果您不想提交它,请在执行步骤4之前转到该文件夹​​并将其移至某个位置或将其删除。