如何使用peewee db_url.connect()与RetryOperationalError生成连接?

时间:2017-02-28 03:19:11

标签: python mysql peewee

我使用带有RetryOperationalError的PooledMySQLDatabase默认生成数据库连接,如下所示:

from playhouse.shortcuts import RetryOperationalError
from playhouse.pool import PooledMySQLDatabase


class MySQLRetryDB(RetryOperationalError, PooledMySQLDatabase):
    pass


mysql_db = MySQLRetryDB('test_db')

现在我想使用db_url.connect来生成这样的数据库连接:

from playhouse.db_url import connect
mysql_db = connect('mysql+pool://root:root@localhost:3306/test_db')

但我找不到使用RetryOperationalError的方法,如何使用connect()与RetryOperationalError生成连接?

1 个答案:

答案 0 :(得分:0)

我的解决方案是破解db_url.schemes

class MySQLRetryDB(RetryOperationalError, PooledMySQLDatabase):
    pass


schemes['mysql+pool+retry'] = MySQLRetryDB


mysql_db = connect('mysql+pool+retry://root:root@localhost:3306/test_db')