Django 模型建立後的必備步驟:執行 migrate

更新日期: 2024 年 12 月 16 日

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

  1. 透過服務管理器啟動
    • 打開「服務管理器」:
      1. 按下 Win + R,輸入 services.msc,按 Enter。
      2. 在服務清單中找到 PostgreSQL(名稱類似於 postgresql-x64-<version>)。
      3. 右鍵點擊該服務,選擇「啟動」即可。
  2. 透過命令列啟動 若你偏好使用命令列操作,可以使用以下指令: 使用 pg_ctl
pg_ctl start

此指令會根據環境變數 PGDATA 自動找到資料目錄並啟動伺服器。

如果你尚未設置 PGDATA,可以手動指定資料目錄,如下:

pg_ctl start -D "C:\path\to\data\directory"

-D:指定 PostgreSQL 的資料目錄路徑。

  1. 檢查伺服器啟動狀態
    • 若要確認 PostgreSQL 是否已正常啟動,可以使用以下指令:
pg_ctl status
  1. 停止 PostgreSQL 伺服器
    • 若需要停止伺服器,可以執行:
pg_ctl stop

測試資料庫連接

你也可以直接測試資料庫的連線狀態。例如,在 PostgreSQL 中使用以下指令:

psql -h 127.0.0.1 -U your_database_user -d your_database_name

成功連線後,執行 migrate 的操作才不會出現錯誤。


結語

在 Django 中,每次對模型進行更改後,執行 migrate 是一個不可或缺的步驟。以下是三個關鍵提醒,幫助你順利完成遷移:

  1. 確保執行 makemigrationsmigrate 指令
  2. 如果使用影像字段,記得安裝 Pillow
  3. 確認資料庫伺服器已啟動,並檢查連線狀態

完成這些準備後,你的 Django 專案應該可以順利運行,並在資料庫中正確反映模型的變更!

Similar Posts