我无法使用syncdb,因为我的应用程序使用了一些MySQL视图。我已经运行manage.py sqlall <app>
,但是这不会输出django_content_type表或auth_permission表的SQL。我也看过南方和django进化,但它们都需要syncdb,我不确定它们是否会有所帮助。
我已经手动将一些模型添加到表中,但这令人沮丧,并且安装了dbsettings应用程序后,我不确定我现在需要输入什么。
有没有人知道如何获得manage.py(或其他东西)来输出这些表及其内容的SQL?
感谢。
答案 0 :(得分:12)
经过多挖掘后,我发现了这些: Fixing the auth_permission table after renaming a model in Django和manage.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