Django:我如何构建我的应用程序以使用许多数据库

时间:2015-07-13 05:55:08

标签: python django database-migration

由于特定的历史和技术原因,必须为每个脚本运行创建一个新的SQLite数据库,我们每天可能有一百个这样的数据库。这些都是相同的类型,都有相同的表。我们还有一个主PostgreSQL数据库。

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

我们应该如何构建应用程序和模型以便实现这一目标:

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

1 个答案:

答案 0 :(得分:0)

  

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

如果您将脚本设置为management commands,那么您可以通过自定义manage.pysettings.py文件来配置sqlite数据库设置,例如env vars或在命令行中传递ARGS

也许你会把它全部包装在一个bash脚本中,模糊地类似

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

如果可能,请确保某些模型仅保存在SQLite中,而其他模型仅保存在PostgreSQL中。

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