Viewing File: /opt/alt/python35/lib64/python3.5/site-packages/playhouse/__pycache__/read_slave.cpython-35.pyc
R6¿W© ã @ s* d Z d d l TGd d „ d e ƒ Z d S)ag
Support for using a dedicated read-slave. The read database is specified as a
Model.Meta option, and will be used for SELECT statements:
master = PostgresqlDatabase('master')
read_slave = PostgresqlDatabase('read_slave')
class BaseModel(ReadSlaveModel):
class Meta:
database = master
read_slaves = [read_slave] # This database will be used for SELECTs.
# Now define your models as you would normally.
class User(BaseModel):
username = CharField()
# To force a SELECT on the master database, you can instantiate the SelectQuery
# by hand:
master_select = SelectQuery(User).where(...)
é )Ú*c sR e Z d Z e d d „ ƒ Z e ‡ f d d † ƒ Z e ‡ f d d † ƒ Z ‡ S)ÚReadSlaveModelc C s_ t | j d d ƒ s | j j St | d d ƒ } | d t | j j ƒ | _ | j j | j S)NÚread_slavesÚ_read_slave_idxé éÿÿÿÿ)ÚgetattrZ_metaÚdatabaseÚlenr r )ÚclsZcurrent_idx© r ú/read_slave.pyÚ_get_read_database s
z!ReadSlaveModel._get_read_databasec s. t t | ƒ j | | Ž } | j ƒ | _ | S)N)Úsuperr Úselectr r )r ÚargsÚkwargsÚquery)Ú __class__r r
r # s zReadSlaveModel.selectc sF t t | ƒ j | | Ž } | j j ƒ j d ƒ rB | j ƒ | _ | S)Nr )r r ÚrawZ_sqlÚlowerÚ
startswithr r )r r r r )r r r
r ) s zReadSlaveModel.raw)Ú__name__Ú
__module__Ú__qualname__Úclassmethodr r r r r )r r
r s r N)Ú__doc__ZpeeweeZModelr r r r r
Ú<module> s
Back to Directory
File Manager