Peewee很新。我在另一个具有类似功能的项目之后对我的代码进行建模。但我遇到的问题是,当我创建表时,会创建一个sqlite DB并在其中创建表。虽然,我正在尝试使用MySQL。
相关代码位:
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()
我可能会遗漏这件事吗?
答案 0 :(得分:1)
您需要以这种方式将模型与数据库关联:
class MyTable(Model):
class Meta:
database = mysql_db
否则他们将使用默认的sqlite db。