我是否每次都要在peewee中调用create table?

问题描述 投票:0回答:1

我在一个项目中工作,在该项目中,我拥有具有相同数据库体系结构的不同项目,所以我在其中使用了peewee模型:

dynamic_db = SqliteDatabase(None)
class BaseModel(Model):
    class Meta:
        database = dynamic_db

并且无论何时创建新项目,我都会调用一个函数

dynamic_db.init(r'{}\database.db'.format(ProjectName.upper()))
dynamic_db.connect()
dynamic_db.create_tables([tables])
dynamic_db.close()

问题是,一旦创建了该数据库,我就无法使用peewee。我收到此错误:peewee.InterfaceError: Error, database must be initialized before opening a connection.

我希望有任何帮助或食谱给小矮人。

python sqlite peewee
1个回答
0
投票
我相信您的问题描述或所收到的错误中有不正确的地方。您对.init()

is进行的调用将初始化数据库。之后,使用它应该没有问题。

可以正常工作的完整示例:

from peewee import * db = SqliteDatabase(None) class Base(Model): class Meta: database = db class KV(Base): key = TextField() value = IntegerField() db.init('foo.db') # database is now initialized db.connect() db.create_tables([KV]) # no problems. db.close()

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.