我有一个在 Oracle 数据库上创建的 django 项目,我想切换到另一个 Oracle 数据库。我已经按照这个教程https://pythonfusion.com/switch-database-django/进行操作,但有一个问题是,并非所有模型最初都是在 Django 中创建的,有些模型是在其他数据库中的现有表上使用inspectdb 创建的。因此,当使用 migrate --database=new 命令时,我收到有关创建 Django 之前已存在的那些表的错误。有没有办法只迁移 Django 工作所需的模型和表? (用户、授权...)
最佳答案
我认为您必须查看每个模型元类的托管属性。 如果 Managed 为 true,那么 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/
关于python - 切换到 Django 中的另一个数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74180466/