我正在用PyQt编写桌面应用程序,我们计划使用sqlite3-databases进行文件存储(而不是pickle,XML,YAML等)。原因是我们的应用程序可能稍后迁移到集中式数据存储。 (然后需要与其他基于Web的服务等进行通信。)
在每个人都说“使用SQLAlchemy和Elixir”之前,我想指出为什么选择Django,因为:
无论如何,我的问题是我无法选择不同的sqlite3数据库,因为Django的settings.configure
会在第二次调用时抛出'已配置'错误。
除了重新启动应用程序之外,还有什么想法?
(关于SO的许多Django-desktop-orm问题似乎没有解决这个问题......)
答案 0 :(得分:3)
释义http://docs.djangoproject.com/en/dev/topics/db/multi-db/
在settings.py中定义多个数据库。
DATABASES = {
'default': {
'NAME': 'defaultdb',
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'USER': 'postgres_user',
'PASSWORD': 's3krit'
},
'other': {
'NAME': 'otherdb',
'ENGINE': 'django.db.backends.mysql',
'USER': 'mysql_user',
'PASSWORD': 'priv4te'
}
}
然后您可以手动选择数据库。
>>> # This will run on the 'default' database.
>>> Author.objects.all()
>>> # So will this.
>>> Author.objects.using('default').all()
>>> # This will run on the 'other' database.
>>> Author.objects.using('other').all()