Postgresql pg_dump后Django Admin缓慢

时间:2013-12-20 16:19:56

标签: django performance postgresql django-admin rds

我在云端运行的功能很好的远程PostgreSQL实例(Amazon RDS)。我想获得一份本地副本用于开发。远程实例在Ubuntu上,我在Mac上本地使用postgres.app。我采用了这种方法:

psql -h localhost -U <superuser> template1 -c 'CREATE DATABASE <thedbname>;'
pg_dump -U <remoteuser> -h <remotehost> <thedbname> | psql -h localhost -U <localsuperuser> <thedbname> 

数据传来并加载。我添加了一个本地djangouser并将其放入我的settings.py中。当我尝试连接时,我收到了这条消息:

ProgrammingError: permission denied for relation django_site

我四处搜索然后应用了这个:

psql <mydbname> -c "GRANT ALL ON ALL TABLES IN SCHEMA public to <djangoappusername>;"
psql <mydbname> -c "GRANT ALL ON ALL SEQUENCES IN SCHEMA public to <djangoappusername>;"
psql <mydbname> -c "GRANT ALL ON ALL FUNCTIONS IN SCHEMA public to <djangoappusername>;"

这让我可以“运行服务器”。我浏览网站,所有数据都在那里,它的速度非常快,并按预期运行。但后来我加载了/ admin /。 。 。它的狗很慢。我可以登录并移动但是从屏幕移动到屏幕需要90秒(Chrome在左下方显示“连接...”)。它不是一个非常大的数据库。除了/ admin / access之外的一切都很棒。我确实删除了旧的admin.pyc,没有效果。

我想知道的一件事是我使用的角色,我没有使用远程超级用户,我使用了在设置PostgreSQL的RDS实例时创建的角色,这就是\ du看起来像在那里,我使用了第一个角色:

                                  List of roles
   Role name   |                   Attributes                   |    Member of    
---------------+------------------------------------------------+-----------------
 <remoteuser>  | Create role, Create DB                         | {remotesuperu}
 <remotesuperu>| Cannot login                                   | {}
 <rdsadmin>    | Superuser, Create role, Create DB, Replication | {}

还有一件事,这些是我的本地角色,是数据库的所有者:

                             List of roles
 Role name |                   Attributes                   | Member of 
-----------+------------------------------------------------+-----------
 <djangou> | Create DB                                      | {}
 <superu>  | Superuser, Create role, Create DB, Replication | {}
 <dbowner> | Create role, Create DB, Cannot login           | {}

任何人都对如何正确修复缓慢的管理员有任何想法,或者如果有更好的方法,我会很乐意放弃数据库并重新启动它。

1 个答案:

答案 0 :(得分:0)

我打开了开发人员工具,管理员试图获取css&amp;来自未运行的远程EC2实例上的“收集静态”的js。我把它解雇了所以它可以访问这些文件,一切都很好。我会留下问题和答案,以帮助将来帮助某人。