运行"python manage.py syncdb"时出现"Unknown command syncdb"错误提示。

34
我想创建一个名为“database1.sqlite”的数据库表,因此我运行以下命令:

python manage.py syncdb

,但是当我执行该命令时,我收到以下错误消息:

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

,但是当我运行

manage.py help

时,我没有看到任何可疑的命令来替代

python manage.py syncdb

。我使用的Python版本是3.4.2,Django版本是1.9。如果有人能帮我解决这个问题,我将非常感激。谢谢您!

1
似乎你有点超前了,也许?:p Django 1.8不是还在 alpha 版本吗? - ArchiFloyd
你尝试过 python manage.py migrate 吗?文档 - akotian
感谢您的支持。@Archi,我安装了1.9的beta版本。由于我正在使用视频教程学习Django,所以我决定安装与视频教程相同的版本,即1.6.2版本。 - lanz
这里可以找到一个小讨论 https://dev59.com/4GEi5IYBdhLWcg3wUK2C - Nabin
10个回答

60

感谢您的支持。@Archi问题已解决 --> 我安装了beta版本1.9。由于我正在使用视频教程学习Django,因此我决定安装与视频教程相同的版本1.6.2。 - lanz
如何加载固定装置?在此之前非常方便。 - holms

8

新版Django 1.9已经移除了"syncdb"命令,现在需要使用"python manage.py migrate"来进行数据库迁移。如果您需要创建超级用户,则可以运行"python manage.py createsuperuser"命令。


7

$python manage.py syncdb已经过时,现在不再支持。 因此,请按照以下指示进行操作:

无论您创建了什么模型: 首先运行:

$python manage.py makemigrations

运行这个命令后,你的模型将会反映在迁移中。
然后你需要运行:
$python manage.py migrate

然后运行服务器:

$python manage.py runserver

现在,你的项目将会完美地运行。

那么关于装置加载呢?使用一个命令非常方便。 - holms

2
在Django 1.9及以上版本中,syncdb命令已被移除。因此,您可以使用migrate命令代替它,例如:python manage.py migrate。然后,您可以使用python manage.py runserver命令运行服务器。

1
Django已删除python manage.py syncdb命令,现在可以直接使用python manage.py makemigrations,然后使用python manage.py migrate。数据库将自动同步。

1

我曾经遇到同样的问题,唯一有效的方法是使用这个命令。

python3 manage.py migrate --run-syncdb

运行这个程序得到了这个结果。
Ranvijays-Mac:djangodemo rana.singh$ python3 manage.py migrate --run-syncdb
Operations to perform:
  Synchronize unmigrated apps: messages, staticfiles
  Apply all migrations: admin, auth, contenttypes, msg, sessions
Synchronizing apps without migrations:
  Creating tables...
    Running deferred SQL...
Running migrations:
  Applying msg.0001_initial... OK

0

您可以在项目文件夹中运行以下命令:python.exe manage.py migrate,从命令行或批处理文件中运行。如果确实需要syncdb,您还可以将Django降级到旧版本(1.9之前)。

对于尝试从Visual Studio 2015运行Syncdb的人: 选项syncdb已从Django 1.9中删除(自1.7起弃用),但是此选项当前未在VS2015上下文菜单中更新。

此外,如果没有被要求创建超级用户,则应手动运行此命令以创建一个:python.exe manage.py createsuperuser


0

我也尝试了这个命令。最后我从Django的发布说明中找到了答案。

在1.9版本中删除的功能

syncdb命令已被删除。

Django 1.9发布说明

enter image description here


0

替代方法:

  1. 从环境中卸载Django模块
  2. 编辑Requirements.txt,将类型改为Django<1.9
  3. 在环境中的Requirments选项中运行Install
  4. 再次尝试Syncdb

这对我很有用。


0
运行命令 python manage.py makemigrations,然后运行 python manage.py migrate 进行同步。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接