Привет, люди из Stackoverflow,
Раньше я всегда разрабатывал свои проекты Django локально с sqlite в качестве платформы базы данных.Теперь я хотел перейти на PostgreSQL, чтобы воспользоваться возможностями ГИС, но этот переход доставляет мне огромное горе.
Я установил postgresql, аналогичный этому post , а затем последовал за Описание GeoDjango для создания базы данных.
Кроме того, я заменил класс моделей на
from django.contrib.gis.db import models
и добавил
geolocation = models.PointField(_('Geo Location'),
geography=True,
help_text=_('Geolocation with Longitude and Latitude'))
objects = models.GeoManager()
Теперь, перед погружениемглубже в сфере postgreSQL, я хотел проверить доступ к модели через администратора Django, и я столкнулся с первой ошибкой.
Когда я выбираю модель (которую я только что изменил, как упомянуто выше) в Admin, яполучить следующую ошибку:
**InternalError at /admin/remap/project/**
current transaction is aborted, commands ignored until end of transaction block
Эта ошибка связана с неправильным SQL-запросом, но я удивлен, что администратор Django создает неправильные SQL-операторы (используемые миллионами разработчиков, и он прекрасно работал в более ранней конфигурации SQLite).).
Когда я проверяю оператор django sql, я вижу запись для PointField
"geolocation" geography(POINT,4326) NOT NULL,
, но когда я проверяю psql \ dпроекты , я не вижу изменений в PointField (именно это и должно вызывать ошибку).Поскольку я использую South, я выполнил
./manage.py schemamigration projects --initial
./manage.py migrate projects
, но получил сообщение
Running migrations for projects:
- Nothing to migrate.
- Loading initial data for projects.
Как я могу убедить south / postgresql, что есть что-то для миграции?Видите ли вы еще какие-либо проблемы с переходом с SQLite на PostgreSQL?
Спасибо за ваш ответ и помощь!