我无法使用 syncdb,因为我的应用程序使用了一些 MySQL View 。我跑了manage.py sqlall <app>
,但这不会输出 django_content_type 表或 auth_permission 表的 SQL。我还研究了 South 和 django 进化,但它们都需要同步数据库,我不确定它们是否会有所帮助。
我已经手动向表中添加了一些模型,但这令人沮丧,并且安装了 dbsettings 应用程序后,我不确定我现在需要输入什么。
有没有人知道获取 manage.py (或其他东西)来输出这些表及其内容的 SQL 的方法?
谢谢。
最佳答案
经过更多的挖掘,我发现了这些:
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
意味着它会询问您是否要删除陈旧的内容类型。
关于Django manage.py - 创建 auth_permission 和 django_content_type 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8928225/