Итак, я сделал резервную копию своей базы данных geodjango postgis, используя pg_dump
, прежде чем выполнить некоторые вычисления, которые мне удалось испортить. Я создал новую базу данных, используя
createdb -T template0 -O proj proj_backup
psql proj_backup < proj_backup.pg
Казалось бы, это работает нормально (хотя при импорте было несколько ошибок), и при подключении к базе данных с помощью psql
все мои таблицы там и, кажется, имеют правильное количество строк и т. Д.
Однако, изменив файл settings.py для подключения к моей недавно импортированной резервной базе данных (proj_backup
в моем примере), я получаю следующие ошибки:
DatabaseError: relation "appname_model" does not exist
Есть идеи? Я предполагаю, что сделал дамп неправильно, или что я не поддерживал ForeignKeys как-то. Большое спасибо.
Обновление
Итак, я разобрался с первой ошибкой: у меня было две базы данных с одинаковыми именами, и я подключился к неправильной. Подключение к правильному, кажется, исправило все. Тем не менее, все еще довольно странно, что он не распознал таблицы в другой резервной базе данных, которая определенно существовала. Запуск syncdb в неверной базе данных приводит к дублированию этих таблиц (если я правильно помню, когда я перечислял их все из psql, были дублированные имена таблиц). К сожалению, я обнаружил свою ошибку, уронив плохую таблицу, чтобы воссоздать ее, и поэтому, чтобы воспроизвести эту ошибку, мне, вероятно, придется использовать машину времени. Все еще очень странно, я сделаю это, когда смогу получить физический доступ к своей рабочей машине.