如何加入两个分离的数据库python peewee的两个模型

时间:2015-04-25 07:33:32

标签: python mysql peewee

我使用peewee来使用Mysql数据库。

import peewee
db_1 = peewee.MySQLDatabase('db_1', **{'user': 'root'})
db_2 = peewee.MySQLDatabase('db_2', **{'user': 'root'})

class User(peewee.Model):
    id = peewee.PrimaryKeyField()
    username = peewee.CharField()

    class Meta:
        database = db_1

class Tweet(peewee.Model):
    id = peewee.PrimaryKeyField()
    tweet = peewee.CharField()
    user = peewee.IntegerField(db_column='user_id')

    class Meta:
        database = db_2

我想执行此代码:

m = Tweet().select(Tweet, User).join(
    User, join_type=JOIN_INNER, on=User.id == Tweet.user
).where(
    User.id == 13
)

但它引发了这个错误:

peewee.ProgrammingError: (1146, "Table 'db_2.user' doesn't exist")

我该如何解决?

1 个答案:

答案 0 :(得分:2)

我认为最好在第二个数据库上使用问题view的解决方案。 我将users的视图创建为db_2,并且该代码可以正常工作。