繁体   English   中英

使用 PostgreSQL 9.5 在 Django 1.9 中执行“python manage.py migrate”时出现错误“django.db.utils.OperationalError”

[英]Getting error 'django.db.utils.OperationalError' when doing 'python manage.py migrate' in Django 1.9 with PostgreSQL 9.5

我是编程和学习 Web 开发的新手。 我已经在 Windows 7 操作系统上为 postgresql 安装了 -Django 1.9 -postgresql 9.5 -psycopg2(使用 whl 文件)db api。

我已经在我的 settings.py 文件中为我的项目设置了数据库连接,如下所示。

 DATABASES = 
{ 'default': 
{ 'ENGINE': 'django.db.backends.postgresql', 
'NAME': 'Test', 
'User': 'postgres', 
'PASSWORD': 'admin', 
'HOST': 'localhost', 
'PORT': '5432', 
} 

但是当我运行 migrate 时,我遇到了以下问题。 我想将 postgres 连接到我的 django 看到下面的错误:

Traceback (most recent call last):
 File "C:\Users\agarwal.s.13\AppData\Local\Programs\Python\Python35-32\lib\site
-packages\django\db\backends\base\base.py", line 199, in ensure_connection
self.connect()
 File "C:\Users\agarwal.s.13\AppData\Local\Programs\Python\Python35-32\lib\site
-packages\django\db\backends\base\base.py", line 171, in connect
self.connection = self.get_new_connection(conn_params)
  File "C:\Users\agarwal.s.13\AppData\Local\Programs\Python\Python35-32\lib\site
-packages\django\db\backends\postgresql\base.py", line 175, in get_new_connection
    connection = Database.connect(**conn_params)
  File "C:\Users\agarwal.s.13\AppData\Local\Programs\Python\Python35-32\lib\site
-packages\psycopg2\__init__.py", line 164, in connect
    conn = _connect(dsn, connection_factory=connection_factory, async=async)psycopg2.OperationalError
The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "manage.py", line 10, in <module>
   execute_from_command_line(sys.argv)
 File "C:\Users\agarwal.s.13\AppData\Local\Programs\Python\Python35-32\lib\site
-packages\django\core\management\__init__.py", line 353, in         execute_from_command_line
    utility.execute()
   File "C:\Users\agarwal.s.13\AppData\Local\Programs\Python\Python35-32\lib\site
 -packages\django\core\management\__init__.py", line 345, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
  File "C:\Users\agarwal.s.13\AppData\Local\Programs\Python\Python35-32\lib\site
 -packages\django\core\management\base.py", line 348, in run_from_argv
self.execute(*args, **cmd_options)
   File "C:\Users\agarwal.s.13\AppData\Local\Programs\Python\Python35-32\lib\site
 -packages\django\core\management\base.py", line 399, in execute
output = self.handle(*args, **options)
  File "C:\Users\agarwal.s.13\AppData\Local\Programs\Python\Python35-32\lib\site
 -packages\django\core\management\commands\migrate.py", line 89, in handle
executor = MigrationExecutor(connection, self.migration_progress_callback)
  File "C:\Users\agarwal.s.13\AppData\Local\Programs\Python\Python35-32\lib\site
-packages\django\db\migrations\executor.py", line 20, in __init__
self.loader = MigrationLoader(self.connection)
  File "C:\Users\agarwal.s.13\AppData\Local\Programs\Python\Python35-32\lib\site
-packages\django\db\migrations\loader.py", line 49, in __init__
self.build_graph()
  File "C:\Users\agarwal.s.13\AppData\Local\Programs\Python\Python35-32\lib\site
-packages\django\db\migrations\loader.py", line 176, in build_graph
self.applied_migrations = recorder.applied_migrations()
  File "C:\Users\agarwal.s.13\AppData\Local\Programs\Python\Python35-32\lib\site
-packages\django\db\migrations\recorder.py", line 65, in applied_migrations
self.ensure_schema()
  File "C:\Users\agarwal.s.13\AppData\Local\Programs\Python\Python35-32\lib\site
-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 "C:\Users\agarwal.s.13\AppData\Local\Programs\Python\Python35-32\lib\site
-packages\django\db\backends\base\base.py", line 231, in cursor
cursor = self.make_debug_cursor(self._cursor())
  File "C:\Users\agarwal.s.13\AppData\Local\Programs\Python\Python35-32\lib\site
-packages\django\db\backends\base\base.py", line 204, in _cursor
self.ensure_connection()
  File "C:\Users\agarwal.s.13\AppData\Local\Programs\Python\Python35-32\lib\site
-packages\django\db\backends\base\base.py", line 199, in ensure_connection
self.connect()
  File "C:\Users\agarwal.s.13\AppData\Local\Programs\Python\Python35-32\lib\site
  -packages\django\db\utils.py", line 95, in __exit__six.reraise(dj_exc_type, dj_exc_value, traceback)
  File "C:\Users\agarwal.s.13\AppData\Local\Programs\Python\Python35-32\lib\site
 -packages\django\utils\six.py", line 685, in reraise
raise value.with_traceback(tb)
  File "C:\Users\agarwal.s.13\AppData\Local\Programs\Python\Python35-32\lib\site
  -packages\django\db\backends\base\base.py", line 199, in ensure_connection
self.connect()
  File "C:\Users\agarwal.s.13\AppData\Local\Programs\Python\Python35-32\lib\site
-packages\django\db\backends\base\base.py", line 171, in connect
self.connection = self.get_new_connection(conn_params)
  File "C:\Users\agarwal.s.13\AppData\Local\Programs\Python\Python35-32\lib\site-packages\django\db\backends\postgresql\base.py", line 175, in get_new_connection
   connection = Database.connect(**conn_params)
  File "C:\Users\agarwal.s.13\AppData\Local\Programs\Python\Python35-32\lib\site
-packages\psycopg2\__init__.py", line 164, in connect
conn = _connect(dsn, connection_factory=connection_factory, async=async)
django.db.utils.OperationalError

我已经使用 python 脚本检查了 psycopg2 能够在 postgresql 中连接数据库,但是当我从 django 项目运行迁移时,它无法正常工作并出现上述错误。

您的 postgres 服务器未启动。 您需要先启动服务器。 Django 不附带 postgres 或任何数据库服务器。 它为这些数据库服务器提供连接器和 ORM。 安装 postgres ,根据 Django 中的 DATABASE 设置创建用户和数据库,错误应该消失。 如果你不知道如何安装 postgres,那么谷歌。 希望这可以帮助。

您需要在 DATABASES 设置中将“用户”更改为“用户”。

暂无
暂无

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

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