python - 我是否需要每次在 peewee 中调用创建表?
问题描述
我在一个项目中工作,其中我有不同的项目具有相同的数据库架构,所以我使用了 peewee 模型,其中:
dynamic_db = SqliteDatabase(None)
class BaseModel(Model):
class Meta:
database = dynamic_db
class KV (BaseModel):
key = TextField()
value = IntegerField()
每当我创建新项目时,我都会调用一个函数
dynamic_db.init(r'{}\database.db'.format(ProjectName.upper()))
dynamic_db.connect()
dynamic_db.create_tables([KV])
dynamic_db.close()
问题是一旦创建了这个数据库,我就无法使用 peewee 访问。当我尝试创建记录时:
KV.create(key = 'Saul', value = 123)
我收到此错误:
peewee.InterfaceError: Error, database must be initialized before opening a connection.
对于peewee,我将不胜感激任何帮助或食谱。
解决方案
我终于能够创造一个记录。我没有提到我试图在另一个文件中创建它们,但过程与答案中发布的一个 coleifer 相同。我在其中创建 peewee 模型的文件是databases.py
,所以在另一个文件中我执行以下操作:
import databases
databases.db.init('foo.db')
databases.KV.create(name = 'Saul', value= 123)
谢谢!
推荐阅读
- android - [android][flutter][build]如何使用不同的 main.dart 运行 Android App Debug 配置?
- c# - 为什么我不能从具有“in T”的逆变委托返回 T,为什么不能将 T 作为具有“out T”的协变委托的参数?
- authentication - 用于工具 Git/JENKINS/JFROG 的 OpenShift 身份验证服务器
- java - 为什么 cordova 选择了错误的 JDK 版本?
- bash - 如何以相同的输出多次运行 bash 脚本?
- android - 构建一个自定义appbar android,里面有圆形图像和两行标题
- firebase - 如何在flutter中使用linkwithcredential函数。当用户已经向不同的身份验证提供者注册时出现错误。无法链接
- python - 删除 HTML 文件中的强标签
- javascript - 如何在向表中添加列时动态更改列标题
- pci - 了解清除 PCI 错误位