簡體   English   中英

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

[英]Django manage.py Unknown command: 'syncdb'

我正在嘗試按照 本教程進行操作,但我卡在了第 5 步。

當我執行

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

我收到以下錯誤消息:

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

這里是./manage.py help的 output 不包含syncdb命令。 我該如何添加它?

謝謝你的幫助!

編輯:

當我運行 migrate 時,出現以下錯誤:

“創建新內容類型時出錯。請確保內容類型” 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:

如果我從 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?

django 1.7 中 不推薦使用syncdb命令。 改用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

您可以分階段執行此操作,假設您有一個名為“example”的應用程序:

  1. 運行 python manage.py makemigrations 示例
  2. 一個數字生成像 '0001' 獲取數字
  3. 使用編號運行 python manage.py sqlmigrate 示例 0001。 查看腳本。
  4. 運行 python manage.py migrate 示例 0001

您還可以像這樣查看所有遷移: python manage.py showmigrations
如果您不想提交它,請在執行步驟 4 之前轉到該文件夾​​並將其移動到某個位置或將其刪除。

實際命令是:

python manage.py migrate --run-syncdb

它將解決 django 中的許多錯誤,例如,操作錯誤,在數據庫中找不到表等。

但是,由於需要為 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”

謝謝

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM