由于特定的历史和技术原因,必须为每个脚本运行创建一个新的SQLite数据库,我们每天可能有一百个这样的数据库。这些都是相同的类型,都有相同的表。我们还有一个主PostgreSQL数据库。
Django应用程序必须能够读取和写入两种类型的数据库。
我们应该如何构建应用程序和模型以便实现这一目标:
答案 0 :(得分:0)
为每个脚本运行创建一个新的SQLite数据库并在其中创建(迁移)表。
如果您将脚本设置为management commands,那么您可以通过自定义manage.py
和settings.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