Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak przeszukiwać kilka podobnych baz danych za pomocą Peewee?

Dalej nie jest może dokładna odpowiedź na twój problem, ale sam próbowałem – z powodzeniem – używając playhouse.proxy dla każdego schematu, którego chcę użyć, i odwołaj się do odpowiedniego serwera proxy w wewnętrznej klasie Meta. Myślę, że to zadziała również bez serwerów proxy. Wygląda jednak na to, że szukasz zapytań obejmujących wiele schematów i już zorientowałeś się, co właśnie wymyśliłem.

#!/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')

Cóż, jest to możliwe dzięki ręcznemu wytwarzaniu kodu z pwiz.py. Jestem pewien, że istnieje bardziej elegancki i leniwy (tzn. nie jestem chętny ) sposób to zrobić, używając jakiejś fabryki, ale nie spędziłem jeszcze dużo czasu na Pythonie ani PeeWee. Jeśli tak, pwiz.py powinien mieć dodatkową flagę do tego celu, jak sądzę.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Łączenie się z bazą danych Mysql za pomocą C# - potrzebujesz trochę z zestawami danych

  2. Snow Leopard + Ruby 1.9.1 + Klejnot MySQL =Ogromne problemy

  3. Jak zmienić strefę czasową MySQL w połączeniu z bazą danych za pomocą Javy?

  4. Przekazać indeks do tabeli tymczasowej ze zwykłej tabeli?

  5. MySQL zaznacza wszystkie wiersze od ostatniego miesiąca do (now() - 1 miesiąc), w celach porównawczych