65

我正在尝试遵循本教程,但我被困在第 5 步。

当我执行

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

我收到以下错误消息:

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

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

谢谢你的帮助!

编辑 :

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

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

在 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:

如果我'blog',从 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

5 回答 5

193

syncdb命令在 django 1.7中已弃用。改为使用python manage.py migrate

于 2015-02-11T00:44:16.260 回答
13

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

于 2016-04-12T07:32:42.927 回答
12

运行 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
于 2016-09-24T06:42:43.163 回答
1

实际的命令是:

python manage.py migrate --run-syncdb

它将解决 django 中的许多错误,如操作错误、在数据库中找不到表等。

于 2021-08-18T20:20:35.753 回答
0

您可以分阶段这样做,假设您有一个名为“example”的应用程序:

  1. 运行 python manage.py makemigrations 示例
  2. 生成像“0001”这样的数字获取数字
  3. 使用编号运行 python manage.py sqlmigrate example 0001。查看脚本。
  4. 运行 python manage.py 迁移示例 0001

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

于 2020-04-18T03:14:54.687 回答