我有一個在 Oracle 資料庫上創建的 django 專案,我想切換到另一個 Oracle 資料庫。我已按照本教程https://pythonfusion.com/switch-database-django/進行操作,但存在一個問題,并非所有模型最初都是在 Django 中創建的,有些是在其他資料庫中的現有表上使用 inspectdb 創建的。因此,當使用 migrate --database=new命令時,我會收到有關在創建 Django 之前已經存在的那些表的錯誤。有沒有辦法只遷移 Django 作業所需的模型和表?(用戶,授權...)
uj5u.com熱心網友回復:
我認為您必須查看每個模型元類的托管屬性。如果 managed 為真,那么 django 將改變資料庫中的模型。
非托管模型:
class MyModel(models.Model):
...
class Meta:
managed = False # This means django will ignore MyModel when migrating
托管模型:
class MyManagedModel(models.Model):
...
class Meta:
managed = True # This means django will migrate MyManagedModel
更多檔案:https ://docs.djangoproject.com/en/4.1/ref/models/options/
uj5u.com熱心網友回復:
是的,您絕對可以自定義您的遷移行為,命令 python manage.py makemigrations 創建幾個檔案,用于將您的模型遷移到您的資料庫中,任何您仍然可以訪問這些檔案并準確選擇要包含、排除甚至是編輯它們。
檢查以下鏈接: https ://dev.to/koladev/writing-custom-migrations-in-django-3eli
uj5u.com熱心網友回復:
如果我正確理解了您的問題,那么您正在尋找使用 Django 的內置遷移。要找出針對您的新資料庫運行了哪些遷移,請運行該命令,該命令manage.py showmigrations --database=new將向您顯示應用程式背景關系中存在的所有遷移的串列。完成后,您可以通過運行命令手動運行所需的遷移(例如auth和) 。
命令:https ://docs.djangoproject.com/en/4.1/ref/django-admin/#django-admin-showmigrations命令:https ://docs.djangoproject.com/en/4.1/ref/django-admin/ #django-admin-遷移contenttypesmanage.py migrate --database=new app_label migration_nameshowmigrations
migrate
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/522719.html
下一篇:從包含字串的列中提取一個數字
