如何使用 django 在 mysql 中的两个不同模式中使用两个同名表

史雷

我正在使用两个 mysql 模式 X 和 Y,它们都包含多个表,但是两个模式中有一个表具有相同的名称。

两种模式如下:

+--------------+--+--------------+
| X            |  | Y            |
+--------------+--+--------------+
| name         |  | album_info   |
+--------------+--+--------------+
| invite       |  | photo_info   |
+--------------+--+--------------+
|   photo      |  |   photo      |
+--------------+--+--------------+
| user_details |  | temp         |
+--------------+--+--------------+

现在,我想对两个表进行查询,但是当我在 models.py 文件中以相同的名称编写表结构时,它会引发错误/异常。我在 routers.py 文件中声明了两个表,如下所示:

  modelDatabaseMap = {
    .
    'photo': 'default',
    .
    .
    .
    'photo': 'y',
}

(X 是我的默认架构)。声明 i models.py 如下:

 class Photo(models.Model):
     id = models.AutoField(db_column='ID', primary_key=True)
     has_tagged_with = models.IntegerField()
     has_reposted_with = models.IntegerField()
     .
     .

     class Meta:
        managed = False
        db_table = 'photo'

 class Photo(models.Model):
     id = models.AutoField(db_column='ID', primary_key=True)
     account_id = models.IntegerField()
     p_id = models.IntegerField()
     is_profile = models.IntegerField()
     .
     .

     class Meta:
        managed = False
        db_table = 'photo'

现在,歧义首先在名称上,在models.py 中的声明中,其次是在查询中。我被困在如何通过 orm 分别查询两个表。任何有关这方面的帮助/线索都会有所帮助。提前致谢。

阿方索·金

根据您的DATABASES配置,您可以尝试:

  1. 更改您的模型名称或models为每个架构创建一个具有不同模块的新应用程序

    class YPhoto(models.Model):
        ...
    
    class XPhoto(models.Model):
        ...
    
  2. 创建一个router.py模块:

    class MyRouter(object):
    
    def db_for_read(self, model, **hints):
        if model.__name__ == 'YPhoto':
            return 'Y'
        return None
    
    def db_for_write(self, model, **hints):
        if model.__name__ == 'YPhoto':
            return 'Y'
        return None
    
    def allow_relation(self, obj1, obj2, **hints):
        # Maybe you want to prevent relations between different schemas, it's up to you
        return True
    
    def allow_syncdb(self, db, model):
        return True
    
  3. 将路由器添加到settings.py

    DATABASE_ROUTERS = ['myapp.models.MyRouter',]
    

检查有关数据库路由文档

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在模型 django 中使用两个同名函数

来自分类Dev

如何使用mysql比较两个不同表中的两个字段?

来自分类Dev

使用mysql在两个不同的行中交换“两个”列值

来自分类Dev

使用mysql从两个不同的表中获取结果

来自分类Dev

使用mysql从两个不同的表中获取结果

来自分类Dev

如何通过在django中使用两个不同的日期进行过滤来获取数据?

来自分类Dev

如何从Django中两个不同的表返回数据?

来自分类Dev

如何使用JDBC从两个不同的MySQL数据库中检索数据?

来自分类Dev

如何使用 PHP 和 MYSQL 将数据插入到两个不同的表中

来自分类Dev

使用 Django 比较来自两个不同模型的数据

来自分类Dev

如何在MySQL中使用INNER JOIN从两个表中删除行?

来自分类Dev

在 MySQL 中,如何从两个不同的表中选择 *?

来自分类Dev

使用两个不同的MySQL表计数的用户操作

来自分类Dev

MySQL对两个不同的表列使用相同的外键

来自分类Dev

尝试在python django中使用不同的键映射两个对应的值

来自分类Dev

Django在模板中使用两个不同的数据集填充表

来自分类Dev

在 Django 命令测试中使用两个不同的数据集修补外部 API 调用

来自分类Dev

在bash脚本中使用mySQL检查两个条件

来自分类Dev

在mysql查询中使用两个内部联接

来自分类Dev

在MySQL中使用子查询联接两个表

来自分类Dev

如何在Django模板中使用两个表单,以及如何在提交表单时调用不同的函数

来自分类Dev

我需要使用mysql比较不同行中的两个不同列

来自分类Dev

Django / python:如何在Django的单个URL中使用两个名称空间?

来自分类Dev

使用django在两个不同的文件夹中上传并重命名两个不同的文件?

来自分类Dev

使用结构不同的MySql同步来自两个不同数据库的两个表

来自分类Dev

使用PHP检索MySQL中两个不同表列字段的总和

来自分类Dev

使用PHP检索MySQL中两个不同表列字段的总和

来自分类Dev

使用php从两个不同的mysql表中回显数据

来自分类Dev

使用单个查询从两个不同的 mysql 表中获取数据时遇到问题..!

Related 相关文章

  1. 1

    如何在模型 django 中使用两个同名函数

  2. 2

    如何使用mysql比较两个不同表中的两个字段?

  3. 3

    使用mysql在两个不同的行中交换“两个”列值

  4. 4

    使用mysql从两个不同的表中获取结果

  5. 5

    使用mysql从两个不同的表中获取结果

  6. 6

    如何通过在django中使用两个不同的日期进行过滤来获取数据?

  7. 7

    如何从Django中两个不同的表返回数据?

  8. 8

    如何使用JDBC从两个不同的MySQL数据库中检索数据?

  9. 9

    如何使用 PHP 和 MYSQL 将数据插入到两个不同的表中

  10. 10

    使用 Django 比较来自两个不同模型的数据

  11. 11

    如何在MySQL中使用INNER JOIN从两个表中删除行?

  12. 12

    在 MySQL 中,如何从两个不同的表中选择 *?

  13. 13

    使用两个不同的MySQL表计数的用户操作

  14. 14

    MySQL对两个不同的表列使用相同的外键

  15. 15

    尝试在python django中使用不同的键映射两个对应的值

  16. 16

    Django在模板中使用两个不同的数据集填充表

  17. 17

    在 Django 命令测试中使用两个不同的数据集修补外部 API 调用

  18. 18

    在bash脚本中使用mySQL检查两个条件

  19. 19

    在mysql查询中使用两个内部联接

  20. 20

    在MySQL中使用子查询联接两个表

  21. 21

    如何在Django模板中使用两个表单,以及如何在提交表单时调用不同的函数

  22. 22

    我需要使用mysql比较不同行中的两个不同列

  23. 23

    Django / python:如何在Django的单个URL中使用两个名称空间?

  24. 24

    使用django在两个不同的文件夹中上传并重命名两个不同的文件?

  25. 25

    使用结构不同的MySql同步来自两个不同数据库的两个表

  26. 26

    使用PHP检索MySQL中两个不同表列字段的总和

  27. 27

    使用PHP检索MySQL中两个不同表列字段的总和

  28. 28

    使用php从两个不同的mysql表中回显数据

  29. 29

    使用单个查询从两个不同的 mysql 表中获取数据时遇到问题..!

热门标签

归档