我在一个项目中工作,在该项目中,我拥有具有相同数据库体系结构的不同项目,所以我在其中使用了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.
我希望有任何帮助或食谱给小矮人。
.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()