Django manage.py - 创建auth_permission和django_content_type表

时间:2012-01-19 15:00:26

标签: django django-manage.py

我无法使用syncdb,因为我的应用程序使用了一些MySQL视图。我已经运行manage.py sqlall <app>,但是这不会输出django_content_type表或auth_permission表的SQL。我也看过南方和django进化,但它们都需要syncdb,我不确定它们是否会有所帮助。

我已经手动将一些模型添加到表中,但这令人沮丧,并且安装了dbsettings应用程序后,我不确定我现在需要输入什么。

有没有人知道如何获得manage.py(或其他东西)来输出这些表及其内容的SQL?

感谢。

3 个答案:

答案 0 :(得分:12)

经过多挖掘后,我发现了这些: Fixing the auth_permission table after renaming a model in Djangomanage.py sql command for django models - Django

这些输出表,但不输出数据:

python manage.py sql auth
python manage.py sql admin

this更接近了。最后,我通过以下方式进行了管理:

from django.contrib.auth.management import create_permissions
from django.db.models import get_apps
for app in get_apps():
    create_permissions(app, None, 2)

from django.contrib.contenttypes.management import update_all_contenttypes
update_all_contenttypes(interactive=True)

这会添加所有权限,然后添加所需的所有内容类型。 interactive=True表示它会询问您是否要删除过时的内容类型。

答案 1 :(得分:1)

@hajamie解决方案适用于较旧的受支持版本,请注意,下面对我有用!

django = 1.9.7

on Suppliers.SupplierID=products.SupplierID

答案 2 :(得分:0)

我找到的最简单的解决方案是安装Django Extensions,将其添加到settings.INSTALLED_APPS并运行:

manage.py update_permissions