2017-02-28 92 views
0

我默認生成使用PooledMySQLDatabase與RetryOperationalError這樣的數據庫連接:如何使用peewee db_url.connect()與RetryOperationalError生成連接?

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:[email protected]:3306/test_db') 

,但我不能找到一種方法來使用RetryOperationalError,我如何使用connect()來生成與RetryOperationalError的連接?

回答

0

我的解決辦法是黑客db_url.schemes

class MySQLRetryDB(RetryOperationalError, PooledMySQLDatabase): 
    pass 


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


mysql_db = connect('mysql+pool+retry://root:[email protected]:3306/test_db')