將更改應用於資料庫(遷移)
建立新模型或修改現有模型後,你需要為更改生成遷移,然後將遷移應用於指定的資料庫。這可以通過使用 Django 的內建遷移系統來完成。在專案根目錄中使用 manage.py
實用程式:
python manage.py makemigrations <appname>
上面的命令將建立應用程式的 migrations
子目錄下所必需的遷移指令碼。如果省略 <appname>
引數,將處理 settings.py
的 INSTALLED_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
選項使命令以非零狀態退出。
有關遷移的更多詳細資訊,請參閱遷移。