Django 模型建立後的必備步驟:執行 migrate
更新日期: 2024 年 12 月 16 日
本文為 Django 圖片上傳功能系列教學,第 10 篇:
- Django 實現用戶圖片上傳功能:10 步驟詳細解析
- Django 圖片上傳功能完整代碼解析
- Django 模型中的三種主要關聯方式
- Django 中的 ImageField:簡單介紹與進階設定
- Django 中的 blank=True 和 null=True:深度解析
- Django Signals 的基礎入門
- 深入解析 Django 的 @receiver 裝飾器:原理與實踐
- Django 圖片上傳功能:信號執行函數設計解析
- 如何在 Django 中載入和使用信號(Signals)
- Django 模型建立後的必備步驟:執行 migrate 👈 所在位置
- 使用 Django 創建用戶個人資訊更新表單
- 如何使用 Django 更新用戶個人資料
- 深入了解 HTML 表單的 enctype=”multipart/form-data”
- Django 中媒體檔案處理:設定與執行解析
- Django 專案中靜態與媒體檔案的正確配置指南
- Django 動態讀取頭像:模板與上下文的最佳實踐
在 Django 開發過程中,模型(Model)是應用程式與資料庫互動的核心部分。
每當你新增或修改模型後,都需要執行資料庫遷移 (migrate
) 指令,將模型的變更同步到資料庫。
本文將帶你了解執行 migrate
的完整流程,並提醒你注意兩個常見的問題:影像字段依賴 Pillow 與 資料庫伺服器啟動狀態。
執行資料庫遷移 (migrate
) 的正確流程
建立遷移檔案
在建立或修改模型後,第一步是執行以下指令生成遷移檔案:
python manage.py makemigrations
這個指令會根據你的模型變更生成一個描述資料庫操作的檔案,通常會放在 migrations
資料夾中。
執行遷移到資料庫
完成遷移檔案的生成後,接著執行以下指令,將這些變更應用到資料庫中:
python manage.py migrate
這個步驟會實際修改資料庫的結構,新增或更新對應的資料表。
注意事項一:記得安裝 Pillow
如果你的模型中使用了 ImageField
或其他需要處理影像的字段類型,請先安裝 Pillow(Django 圖像處理的依賴套件)。
否則在執行遷移時,可能會出現錯誤。
安裝 Pillow 的方法
執行以下指令來安裝 Pillow:
python -m pip install Pillow
你也可以使用其他套件管理工具,例如:
pipenv install Pillow
# 或
poetry add Pillow
確認 Pillow 是否安裝成功
使用以下指令檢查 Pillow 是否正確安裝:
python -m pip show Pillow
當顯示版本資訊時,代表安裝已成功。例如:
Name: Pillow
Version: 9.x.x
Summary: Python Imaging Library (Fork)
...
注意事項二:啟動資料庫伺服器
若你使用的是本地資料庫(例如 PostgreSQL 或 MySQL),在執行 migrate
前,請確保資料庫伺服器已啟動。
否則,Django 無法建立與資料庫的連接,遷移操作會失敗。
啟動資料庫的方法
PostgreSQL
在 Linux 或 macOS 系統上,可以使用以下指令檢查並啟動資料庫伺服器:
sudo service postgresql status # 檢查伺服器狀態
sudo service postgresql start # 啟動伺服器
若資料庫安裝在 Windows 系統,可以使用以下方法啟動 PostgreSQL:
- 透過服務管理器啟動
- 打開「服務管理器」:
- 按下
Win + R
,輸入services.msc
,按 Enter。 - 在服務清單中找到 PostgreSQL(名稱類似於
postgresql-x64-<version>
)。 - 右鍵點擊該服務,選擇「啟動」即可。
- 按下
- 打開「服務管理器」:
- 透過命令列啟動 若你偏好使用命令列操作,可以使用以下指令: 使用
pg_ctl
:
pg_ctl start
此指令會根據環境變數 PGDATA
自動找到資料目錄並啟動伺服器。
如果你尚未設置 PGDATA
,可以手動指定資料目錄,如下:
pg_ctl start -D "C:\path\to\data\directory"
-D
:指定 PostgreSQL 的資料目錄路徑。
- 檢查伺服器啟動狀態
- 若要確認 PostgreSQL 是否已正常啟動,可以使用以下指令:
pg_ctl status
- 停止 PostgreSQL 伺服器
- 若需要停止伺服器,可以執行:
pg_ctl stop
測試資料庫連接
你也可以直接測試資料庫的連線狀態。例如,在 PostgreSQL 中使用以下指令:
psql -h 127.0.0.1 -U your_database_user -d your_database_name
成功連線後,執行 migrate
的操作才不會出現錯誤。
結語
在 Django 中,每次對模型進行更改後,執行 migrate
是一個不可或缺的步驟。以下是三個關鍵提醒,幫助你順利完成遷移:
- 確保執行
makemigrations
和migrate
指令。 - 如果使用影像字段,記得安裝 Pillow。
- 確認資料庫伺服器已啟動,並檢查連線狀態。
完成這些準備後,你的 Django 專案應該可以順利運行,並在資料庫中正確反映模型的變更!