繁体   English   中英

django.db.utils.OperationalError:fe_sendauth:迁移 django 应用程序时未提供密码

[英]django.db.utils.OperationalError: fe_sendauth: no password supplied when migrating django app

我是 Django 的初学者,从事一个开源项目,这非常具有挑战性,因为它只为 Mac 提供构建说明,而不是 Linux。 因此,在我的 Ubuntu 服务器上,我已经成功安装了所有软件包并修复了一些初始错误,但是现在,当我执行python manage.py migrate时,我遇到了这个错误: django.db.utils.OperationalError: fe_sendauth: no password supplied

我完全被困在这里:我很难理解错误消息,其他解决方案也没有多大帮助。 其他解决方案表明您必须更改 settings.py 中的 DATABASES 设置,但该设置没有 PASSWORD 属性,并且仅链接到 sqlite:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}
DATABASES['default'] = dj_database_url.config()

该错误不会追溯到任何特定的代码行,所以我猜测它与 psycopg2 或 django 的关系比代码本身更重要,但我不确定如何修复它。 我正在使用 Python 2.7.17 和 Ubuntu 18.04.5。 这是完整的错误消息:

Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 364, in execute_from_command_line
    utility.execute()
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 356, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 283, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 330, in execute
    output = self.handle(*args, **options)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/commands/migrate.py", line 83, in handle
    executor = MigrationExecutor(connection, self.migration_progress_callback)
  File "/usr/local/lib/python2.7/dist-packages/django/db/migrations/executor.py", line 20, in __init__
    self.loader = MigrationLoader(self.connection)
  File "/usr/local/lib/python2.7/dist-packages/django/db/migrations/loader.py", line 52, in __init__
    self.build_graph()
  File "/usr/local/lib/python2.7/dist-packages/django/db/migrations/loader.py", line 210, in build_graph
    self.applied_migrations = recorder.applied_migrations()
  File "/usr/local/lib/python2.7/dist-packages/django/db/migrations/recorder.py", line 65, in applied_migrations
    self.ensure_schema()
  File "/usr/local/lib/python2.7/dist-packages/django/db/migrations/recorder.py", line 52, in ensure_schema
    if self.Migration._meta.db_table in self.connection.introspection.table_names(self.connection.cursor()):
  File "/usr/local/lib/python2.7/dist-packages/django/db/backends/base/base.py", line 254, in cursor
    return self._cursor()
  File "/usr/local/lib/python2.7/dist-packages/django/db/backends/base/base.py", line 229, in _cursor
    self.ensure_connection()
  File "/usr/local/lib/python2.7/dist-packages/django/db/backends/base/base.py", line 213, in ensure_connection
    self.connect()
  File "/usr/local/lib/python2.7/dist-packages/django/db/utils.py", line 94, in __exit__
    six.reraise(dj_exc_type, dj_exc_value, traceback)
  File "/usr/local/lib/python2.7/dist-packages/django/db/backends/base/base.py", line 213, in ensure_connection
    self.connect()
  File "/usr/local/lib/python2.7/dist-packages/django/db/backends/base/base.py", line 189, in connect
    self.connection = self.get_new_connection(conn_params)
  File "/usr/local/lib/python2.7/dist-packages/django/db/backends/postgresql/base.py", line 176, in get_new_connection
    connection = Database.connect(**conn_params)
  File "/usr/local/lib/python2.7/dist-packages/psycopg2/__init__.py", line 127, in connect
    conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
django.db.utils.OperationalError: fe_sendauth: no password supplied

同样,我对 Django 和 Postgres 很陌生,所以我可能会遗漏一些明显的东西。 该代码同样可能无法在 Linux 上运行,或者其中存在一些未修复的错误。 任何帮助,将不胜感激。

正如 Vineet 指出的那样, DATABASES['default'] = dj_database_url.config()行覆盖了配置,因此 'PASSWORD' 和其他属性存在并且为空白。 我在它之后添加了这一行:

del DATABASES['default']['PASSWORD'], DATABASES['default']['HOST'], DATABASES['default']['PORT']

并且问题已经解决了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM