Python django dj数据库url运行极慢
当我在本地机器上的django项目中设置dj_database_url时,迁移和开发服务器运行非常慢。他们已经跑了,但是非常慢。当我以这种方式设置数据库时,一切正常 正常运行:Python django dj数据库url运行极慢,python,django,django-database,Python,Django,Django Database,当我在本地机器上的django项目中设置dj_database_url时,迁移和开发服务器运行非常慢。他们已经跑了,但是非常慢。当我以这种方式设置数据库时,一切正常 正常运行: # settings.py DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'my_db', 'USER': os.environ.get(
# settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'my_db',
'USER': os.environ.get("USER"),
'PASSWORD': os.environ.get("PASSWORD"),
'HOST': '127.0.0.1',
'PORT': '5432',
}
}
运行缓慢:
# settings.py
import dj_database_url
DATABASES = {'default': dj_database_url.config(default=os.environ.get("DATABASE_URL"))}
我的.env文件
DATABASE_URL=postgres://user:passwd@localhost:5432/my_db
我怀疑问题在于
dj_database_url
版本无意中使用了错误的数据库。要再次检查,我将代码更改为:
DATABASES = {'default': dj_database_url.config(os.environ["DATABASE_URL"])}
因此,如果未定义数据库URL
,您将立即收到错误
如果您仍然存在问题,请添加:
print "*" * 80
print dj_database_url.config(os.environ["DATABASE_URL"])
print "*" * 80
到您的
settings.py
文件,这样您就可以准确地看到dj_database\u url
返回的内容,并将其与您的“手写”数据库配置进行比较。因此在我的例子中,解决方案是一个简单的更改。我只是更改了数据库的URL
DATABASE_URL=postgres://user:passwd@localhost:5432/my_db
到
而且它有效 这是一个返回<代码>************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************URL未正确设置环境变量。您确定autoenv已正确安装并运行吗?当我在python shell中键入
dj_database_url.config()
时,它将返回正确的值我用于访问.env文件。在这种情况下,请尝试:print repr(os.environ[“database_url]”)
以仔细检查其中的值是否如您所期望的那样。否则,也许只需使用dj\u database\u url.config()
,假装世界不是一个可怕和混乱的地方?
DATABASE_URL=postgres://user:passwd@127.0.0.1:5432/my_db