我使用带有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生成连接?
答案 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')