Один из наших клиентов должен добавить данные геолокации в свои
сайт. Поскольку у них уже есть настройка базы данных без расширений ГИС,
Я решил создать новую базу данных (с расширениями ГИС), которую я
намерены использовать для хранения только данных геолокации.
В какой-то момент я настроил все на свою разработку
машина (имеется в виду, у меня есть миграции для этих новых моделей). Но теперь, когда код написан, я импортировал дамп БД
непосредственно с сервера, так что моя машина разработки точно
отражает производственную машину, и теперь я не могу добраться до Юга
применять миграции правильно. Юг, кажется, имеет несколько особенностей
которые позволяют использовать несколько баз данных, но ни одна из них до сих пор не работала.
Что я пробовал:
Просто добавление модели и миграция. Это дает мне следующее
Ошибка:
AttributeError: 'DatabaseOperations' object has no attribute
'geo_db_type'
ОК, поэтому Юг пытается создать модель в исходной базе данных.
который не имеет расширения ГИС.
Добавление модели, но указание базы геоданных для миграции.
приложение "гео". Это дает мне следующую ошибку:
django.db.utils.DatabaseError: relation "south_migrationhistory"
does not exist
Полагаю, юг ожидает, что его таблица MigrationHistory будет существовать в 'geo'
база данных тоже?
Разрешить модели юга существовать в моей базе данных "geo".
$ python manage.py syncdb --database=geo
$ python manage.py migrate
Это дает мне следующую ошибку:
django.db.utils.DatabaseError: relation "<model>" already exists
Полагаю, это потому, что у меня уже есть история миграции
в другой базе данных?
Юг, по-видимому, имеет редко документированную функцию под названием 'dbs'
(увидеть:
http://south.aeracode.org/docs/databaseapi.html#accessing-the-api)
Поэтому я попробовал предыдущие три метода снова, заменив все экземпляры
"db" с "dbs ['geo']".
а. Миграции проходят гладко, но на самом деле не создают никаких таблиц
в моей базе данных 'Geo'.
б. Та же ошибка, что и при неиспользовании функций 'dbs'.
с. Та же ошибка, что и при неиспользовании функций 'dbs'.
Весь этот процесс был крайне разочаровывающим. Кто-нибудь получил
поддержка нескольких баз данных при использовании South?