готовый проект django выдает ошибку при переносе - PullRequest
0 голосов
/ 09 мая 2019

У меня есть готовый проект django, и мне нужно запустить его на Ubuntu 18. Прошел и установил все необходимые компоненты, используя postgresql в качестве движка db. создал базу данных для проекта и добавил пользователя с необходимыми привилегиями, а затем обновил эти настройки в settings.py файл

затем я выполнил следующие команды для готовых миграций и реализовал их.

# python manage.py makemigrations
No changes detected

&

# python manage.py migrate
Traceback (most recent call last):
  File "/home/hsn/env_banax_api/lib/python3.6/site-packages/django/db/backends/utils.py", line 83, in _execute
    return self.cursor.execute(sql)
psycopg2.ProgrammingError: permission denied to create extension "postgis"
HINT:  Must be superuser to create this extension.


The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "manage.py", line 15, in <module>
    execute_from_command_line(sys.argv)
  File "/home/hsn/env_banax_api/lib/python3.6/site-packages/django/core/management/__init__.py", line 371, in execute_from_command_line
    utility.execute()
  File "/home/hsn/env_banax_api/lib/python3.6/site-packages/django/core/management/__init__.py", line 365, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/home/hsn/env_banax_api/lib/python3.6/site-packages/django/core/management/base.py", line 288, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/home/hsn/env_banax_api/lib/python3.6/site-packages/django/core/management/base.py", line 335, in execute
    output = self.handle(*args, **options)
  File "/home/hsn/env_banax_api/lib/python3.6/site-packages/django/core/management/commands/migrate.py", line 77, in handle
    connection.prepare_database()
  File "/home/hsn/env_banax_api/lib/python3.6/site-packages/django/contrib/gis/db/backends/postgis/base.py", line 26, in prepare_database
    cursor.execute("CREATE EXTENSION IF NOT EXISTS postgis")
  File "/home/hsn/env_banax_api/lib/python3.6/site-packages/django/db/backends/utils.py", line 100, in execute
    return super().execute(sql, params)
  File "/home/hsn/env_banax_api/lib/python3.6/site-packages/django/db/backends/utils.py", line 68, in execute
    return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
  File "/home/hsn/env_banax_api/lib/python3.6/site-packages/django/db/backends/utils.py", line 77, in _execute_with_wrappers
    return executor(sql, params, many, context)
  File "/home/hsn/env_banax_api/lib/python3.6/site-packages/django/db/backends/utils.py", line 85, in _execute
    return self.cursor.execute(sql, params)
  File "/home/hsn/env_banax_api/lib/python3.6/site-packages/django/db/utils.py", line 89, in __exit__
    raise dj_exc_value.with_traceback(traceback) from exc_value
  File "/home/hsn/env_banax_api/lib/python3.6/site-packages/django/db/backends/utils.py", line 83, in _execute
    return self.cursor.execute(sql)
django.db.utils.ProgrammingError: permission denied to create extension "postgis"
HINT:  Must be superuser to create this extension.

Кто-нибудь из вас знает, как это исправить? Сервер django работает, но вместо этого я получаю эту страницу, думаю, что-то связано с подключением к БД. Скриншот страницы, показывающей прямо сейчас, прилагается.

enter image description here

1 Ответ

2 голосов
/ 09 мая 2019

Что вы можете сделать: создать postgis extension в вашей базе данных, используя postgres superuser.

  • Войдите в оболочку postgres, используя имя пользователя суперпользователя (которое вы указали при установке postgresql):

    sudo -i -u <имя_пользователя_пользователя> psql

  • Подключиться к вашей базе данных:

    \ connect <имя_базы_данных>

  • Создать расширение postgis как:

    создать расширение postgis;

Вы можете узнать о пользовательских привилегиях здесь , если у вас возникли проблемы с привилегиями при создании расширения.

...