將更改應用於資料庫(遷移)

建立新模型或修改現有模型後,你需要為更改生成遷移,然後將遷移應用於指定的資料庫。這可以通過使用 Django 的內建遷移系統來完成。在專案根目錄中使用 manage.py 實用程式:

python manage.py makemigrations <appname>

上面的命令將建立應用程式的 migrations 子目錄下所必需的遷移指令碼。如果省略 <appname> 引數,將處理 settings.pyINSTALLED_APPS 引數中定義的所有應用程式。如果你認為有必要,可以編輯遷移。

你可以在不使用 –dry-run 選項實際建立遷移的情況下檢查所需的遷移,例如:

python manage.py makemigrations --dry-run

要應用遷移:

python manage.py migrate <appname>

上面的命令將執行第一步中生成的遷移指令碼並物理更新資料庫。

如果更改現有資料庫的模型,則需要使用以下命令進行必要的更改。

python manage.py migrate --run-syncdb

Django 預設會建立名為 <appname>_<classname> 的表。有時你不想使用它。如果要更改預設名稱,可以通過在 Meta 類中設定 db_table 來宣告表名:

from django.db import models

class YourModel(models.Model):
    parms = models.CharField()
    class Meta:
        db_table = "custom_table_name"

如果要檢視某個遷移將執行的 SQL 程式碼,請執行以下命令:

python manage.py sqlmigrate <app_label> <migration_number>

Django> 1.10
當檢測到沒有遷移的模型更改時,新的 makemigrations --check 選項使命令以非零狀態退出。

有關遷移的更多詳細資訊,請參閱遷移。