看起来manage.py需要比我的Django应用程序在日常使用中需要的更多数据库权限(例如索引,删除,创建)。
有没有办法告诉它使用一个用户来管理manage.py命令,然后用一个更受限制的用户来实际运行这个应用程序?
答案 0 :(得分:3)
我认为你应该可以通过django的multidatabase config对不同的用户使用相同的db两次
e.g。
DATABASES = {
'default': {
'NAME': 'app_data',
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'USER': 'user',
'PASSWORD': ''
},
'default_root': {
'NAME': 'app_data',
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'USER': 'super_user',
'PASSWORD': ''
}
}
然后您可以使用--database进行维护
./manage.py syncdb --database=default_root
这是多数据库文档
答案 1 :(得分:0)
您可以通过单独的db_settings.py
文件来导入主设置文件但重新定义数据库用户的值。
然后,在执行syncdb时,您可以明确告诉Django使用该设置文件:
./manage.py syncdb --settings=db_settings