2015-07-13 43 views
0

由于具体的历史和技术原因,必须为每个脚本运行创建一个新的SQLite数据库,因此我们每天可能会有数百个这样的数据库。这些都是相同的类型,都有相同的表格。我们也有一个PostgreSQL主数据库。Django:我如何构建应用程序以使用多个数据库

Django应用程序必须能够读取和写入两种类型的数据库。

我们应该如何构建应用程序和模式,使这是可能的:

  • 创建一个新的SQLite数据库和创建(迁移)内为每一个脚本运行的表。
  • 如果可能,请确保某些模型仅保存在SQLite中,而其他模型仅保存在PostgreSQL中。
  • 当我做Django迁移时,只有PostgreSQL模型发生变化。
+1

什么是 “为每运行脚本” 是什么意思?在任何时候,有一个SQLite数据库和一个PosgtreSQL数据库? –

+0

每次脚本运行时,都应该创建一个新的SQLite数据库,其中保存了脚本的结果。有数百个SQLite数据库,每天都会添加新的数据库。在任何时候,用户可能会决定检查这些数据库中的任何一个,因此所有数据库都必须可用。想象一下客户归档,每个客户都拥有自己的数据库......但只有一个PostgreSQL数据库。 –

回答

0

为每个脚本运行创建一个新的SQLite数据库并创建(迁移)表。

如果您设置的脚本为management commands,那么你可以通过自定义您的manage.pysettings.py文件来配置从例如ENV SQLite数据库设置实现这一乏或命令行参数传递

也许你会包这一切在bash脚本,依稀有点像

export DB_NAME=this_script_run_id 
./manage.py syncdb 
./manage.py migrate 
./manage.py my_custom_command 

如果可能的话,请确保某些型号仅在PostgreSQL只保存在SQLite和他人。

https://docs.djangoproject.com/en/1.8/topics/db/multi-db/#database-routers

当我做一个Django迁移,只有PostgreSQL的模式改变。

https://docs.djangoproject.com/en/1.8/topics/db/multi-db/#synchronizing-your-databases

相关问题