Я пытаюсь перенести изменения модели, внесенные в мою кодовую базу, на сервер PostgreSQL (PostgreSQL 18.1 для x86_64-linux, скомпилированный gcc-11.4.0, 64-разрядная версия), но каждый раз, когда я это делаю, выдается эта ошибка. В частности, последовательность миграции выдает ошибку при чтении файла /home/[username]/[project]/[project_directory]/newenv/lib/python3.10/site-packages/django/db/backends/utils.py при возврате self.cursor.execute(sql). (Примечание: системная среда — Linux DESKTOP-7C9U6H4 6.6.87.2-microsoft-standard-WSL2).
Вызываемая функция выглядит следующим образом:
def _execute(self, sql, params, *ignored_wrapper_args):
# Raise a warning during app initialization (stored_app_configs is only
# ever set during testing).
if not apps.ready and not apps.stored_app_configs:
warnings.warn(self.APPS_NOT_READY_WARNING_MSG, category=RuntimeWarning)
self.db.validate_no_broken_transaction()
with self.db.wrap_database_errors:
if params is None:
# params default might be backend specific.
return self.cursor.execute(sql)
else:
return self.cursor.execute(sql, params)
В настройках моего проекта мой словарь баз данных выглядит следующим образом:
DATABASES = {
'default': {
'ENGINE': 'django.contrib.gis.db.backends.postgis',
'NAME': '[name]',
'USER': '[user]',
'PASSWORD': '',
'HOST': '127.0.0.1', # localhost
'PORT': '5432',
}
}
Когда я пытаюсь ввести команду CREATE, расширение postgis; на стороне базы данных (сервер расположен в /usr/local/pgsql/data) я получаю следующую ошибку: ОШИБКА: расширение «postgis» недоступно. Подсказка: расширение сначала необходимо установить в системе, где работает PostgreSQL.
Мне неясно, почему расширение недоступно, поскольку я уже запустил его (в локальной виртуальной среде моего проекта)
sudo apt install postgis
sudo apt install postgresql-18
sudo apt install ca-certificates gnupg
curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/apt.postgresql.org.gpg >/dev/null
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
Когда я запускаю apt search postgis, эти элементы появляются для postgresql-18
postgresql-18-postgis-3/jammy-pgdg-testing,jammy-pgdg,now 3.6.1+dfsg-1.pgdg22.04+1 amd64 [installed,automatic]
Geographic objects support for PostgreSQL 18
postgresql-18-postgis-3-dbgsym/jammy-pgdg-testing,jammy-pgdg 3.6.1+dfsg-1.pgdg22.04+1 amd64
debug symbols for postgresql-18-postgis-3
postgresql-18-postgis-3-scripts/jammy-pgdg-testing,jammy-pgdg,now 3.6.1+dfsg-1.pgdg22.04+1 all [installed,automatic]
Geographic objects support for PostgreSQL 18 -- SQL scripts
Подробнее здесь: https://stackoverflow.com/questions/798 ... -error-bei