2017-04-20 2 views
1

Ziemlich neu in Peewee. Ich modelliere meinen Code nach einem anderen Projekt mit ähnlicher Funktionalität. Aber das Problem, das ich habe, ist, dass, wenn ich Tabellen erstelle, eine SQLite-Datenbank erstellt wird und die Tabellen darin. Obwohl ich versuche, MySQL zu verwenden.Peewee Erstellen von Tabellen in SQLite anstelle von MySQL

Relevante Codebits:

class MyRetryDB(RetryOperationalError, PooledMySQLDatabase): 
    pass 

def init_database(): 
    if args.db_type == 'mysql': 
     log.info('Connecting to MySQL database on %s:%i...', 
       args.db_host, args.db_port) 
     connections = args.db_max_connections 
     db = MyRetryDB(
      args.db_name, 
      user=args.db_user, 
      password=args.db_pass, 
      host=args.db_host, 
      port=args.db_port, 
      max_connections=connections, 
      stale_timeout=300) 
     pprint.pprint(vars(db)) 
     create_tables(db) 
    return db 

def create_tables(db): 
    pprint.pprint(vars(db)) 
    tables = [Table1, Table2] 
    db.connect() 
    for table in tables: 
     log.info("Creating table: %s", table.__name__) 
     db.create_tables([table], safe=True) 
    db.close() 

Gibt es ein etwas, das ich mit diesem nicht fehlen könnte?

Antwort

1

Sie benötigen Modelle mit der Datenbank auf diese Weise zu assoziieren:

class MyTable(Model): 
    class Meta: 
     database = mysql_db 

Andernfalls werden sie einen Standard-sqlite db verwenden.

Verwandte Themen