python - 切换到 Django 中的另一个数据库

标签 python sql django oracle

我有一个在 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/

相关文章:

python - 如何使用 flask-sqlalchemy 在竞争条件下确保一致的数据库更新

java - SQL Java 使用 phpmyadmin 中参数索引超出范围

mysql - SQL 查询多次返回 group_concat 函数中的标签字段

python - 无法在 ubuntu 11.10 中安装 rdkit

python - 很难理解为什么这两种矩阵切片方法在 numpy 中并不等效

sql - 在多个查询中使用 postgres CTE

python - 在 Elastic Beanstalk Postgresql 中创建 Django super 用户

Django navigator.sendbeacon csrf保护

python - 你能优化这段代码吗? ( Django , python )

python - 多处理: fork 的缺点?