sql >> Databáze >  >> RDS >> Mysql

Jak dotazovat několik podobných databází pomocí Peewee?

Další možná není přesná odpověď na váš problém, ale to, co jsem sám vyzkoušel – úspěšně – je použití playhouse.Proxy instance pro každé schéma, které chci použít, a odkazuji na odpovídající proxy ve vnitřní třídě Meta. Myslím, že to bude fungovat i bez proxy. Zdá se však, že hledáte dotazy na různá schémata a už jste přišli na to, na co jsem právě teď přišel.

#!/usr/bin/python

import sqlite3
import peewee
from peewee import *
from playhouse.proxy import *

database_a_proxy = Proxy()
database_b_proxy = Proxy()

class BaseModelA(Model):
    class Meta:
            database = database_a_proxy

class BaseModelB(Model):
    class Meta:
            database = database_b_proxy

class RelationInSchemaA(BaseModelA):
    textfield = CharField()

class RelationInSchemaB(BaseModelB):
    textfield = CharField()

database_a = SqliteDatabase('schemaA', **{})
database_b = SqliteDatabase('schemaB', **{})

database_a_proxy.initialize(database_a)
database_b_proxy.initialize(database_b)

try:
   RelationInSchemaA.create_table()
   RelationInSchemaB.create_table()
except:
   pass

RelationInSchemaA.create(textfield='Hello')  
RelationInSchemaB.create(textfield='PeeWee')

To je možné s ručním vytvořením kódu z pwiz.py. Jsem si jistý, že existuje elegantnější a línější (tj. není nedočkavý ) způsob, jak to udělat také pomocí nějaké továrny, ale zatím jsem nestrávil mnoho času v Pythonu ani PeeWee. Pokud ano, pwiz.py by měl mít další příznak pro tento účel, myslím.



  1. Replikace MySQL s ProxySQL na serverech WHM/cPanel:Část druhá

  2. Převod MySQL na MS Access

  3. mysql je mrtvý, ale subsys uzamčený

  4. Příkaz MySQL CASE a REGEXP