Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara menanyakan beberapa database serupa menggunakan Peewee?

Berikutnya mungkin bukan jawaban yang tepat untuk masalah Anda, tetapi apa yang saya coba sendiri - berhasil - adalah menggunakan playhouse.Proxy contoh untuk setiap skema yang ingin saya gunakan, dan merujuk ke proxy yang sesuai di kelas dalam Meta. Saya kira ini akan berfungsi tanpa proxy juga. Namun, sepertinya Anda mencari kueri lintas-skema, dan sudah mengetahui apa yang baru saja saya buat.

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

Nah, ini dimungkinkan dengan kode yang dihasilkan kerajinan tangan dari pwiz.py. Saya yakin ada yang lebih elegan dan malas (yaitu tidak bersemangat ) cara untuk melakukan ini juga, menggunakan semacam pabrik, tetapi saya belum menghabiskan banyak waktu untuk Python atau PeeWee. Jika demikian, saya kira pwiz.py harus memiliki tanda tambahan untuk tujuan ini.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara membuat cadangan database MySQL menggunakan AutoMySQLBackup

  2. Mysql bergabung dan jumlahnya menggandakan hasil

  3. MySQL min/maks untuk tipe GANDA

  4. MySQL bergabung dan mengecualikan?

  5. Bagaimana cara memperbaiki:mysql:[ERROR] Ditemukan opsi tanpa grup sebelumnya di file konfigurasi /etc/mysql/my.cnf?