U S¤ðW©ã@s dZddlTGdd„deƒZdS)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(...) é)Ú*cs<eZdZedd„ƒZe‡fdd„ƒZe‡fdd„ƒZ‡ZS)ÚReadSlaveModelcCsFt|jddƒs|jjSt|ddƒ}|dt|jjƒ|_|jj|jS)NÚ read_slavesÚ_read_slave_idxéÿÿÿÿé)ÚgetattrZ_metaÚdatabaseÚlenrr)ÚclsZ current_idx©r ú/read_slave.pyÚ_get_read_databases  z!ReadSlaveModel._get_read_databasecs tt|ƒj||Ž}| ¡|_|S)N)ÚsuperrÚselectrr ©r ÚargsÚkwargsZquery©Ú __class__r r r#s zReadSlaveModel.selectcs0tt|ƒj||Ž}|j ¡ d¡r,| ¡|_|S)Nr)rrÚrawZ_sqlÚlowerÚ startswithrr rrr r r)s zReadSlaveModel.raw)Ú__name__Ú __module__Ú __qualname__Ú classmethodrrrÚ __classcell__r r rr rs  rN)Ú__doc__ZpeeweeZModelrr r r r Ús