在多个数据库中创建相同的模型 - Django

时间:2013-08-12 16:21:48

标签: python django django-models

正如标题所示,我感兴趣的是如何在多个数据库中创建相同的模型。我有以下场景:每个用户都有自己的数据库(这是简化的情况),当用户向他的应用程序添加新模块时,我希望能够为他添加的模块创建数据库表。 我目前的想法是创建动态模型,添加自定义app_label,然后使用在相应数据库中创建模型的数据库路由器。

有没有更简单的方法来获得这个?

提前致谢!

2 个答案:

答案 0 :(得分:0)

您应该查看syncdb命令 - 您可以通过编程方式调用它:

from django.core.management import call_command
call_command('syncdb')

在您的情况下,您将要在命令行传递的任何选项中使用命名参数:

call_command('syncdb', noinput=True, database=user_db)

希望有所帮助。

另请查看:https://docs.djangoproject.com/en/dev/ref/django-admin/#running-management-commands-from-your-code

答案 1 :(得分:0)

使用带有不同参数的migrate命令。例如,如果您的数据库别名是主要和次要

这样做

    python manage.py migrate --database=primary

    python manage.py migrate --databases=secondary