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



我试图遵循本教程,但我被困在了第五步。

当我执行时

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

我收到以下错误消息:

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

并且这里是CCD_ 2的输出不包含CCD_。如何添加?

谢谢你的帮助!

编辑:

当我运行migrate时,我会得到以下错误:

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

在设置中.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',.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?

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

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

运行下方的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

实际命令是:

python manage.py migrate --run-syncdb

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

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

  1. 运行python manage.py makemigrations示例
  2. 数字生成类似"0001"的数字
  3. 使用数字运行python manage.py sqlmigrate example 0001。查看脚本
  4. 运行python manage.py migrate example 0001

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

然而,由于需要为MariaDB启用严格模式,因此可能会发生另一个错误。

在settings.py文件中保持数据库连接,如下所示:

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',
    }
}

}

请记住以下代码:

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

毕竟,如果你的DJango版本是回溯的;python manage.py syncdb"将工作,但对于大于或等于1.7的更新版本,请使用";python manage.py migrate"

感谢

最新更新