Поэтому я сделал резервную копию своей базы данных 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, были повторяющиеся имена таблиц). К сожалению, способ, которым я обнаружил свою ошибку, состоял в том, что я удалил плохую таблицу, чтобы воссоздать ее, и поэтому для воспроизведения этой ошибки мне, вероятно, придется использовать машину времени. Все еще очень странно, я попробую, когда смогу получить физический доступ к своей рабочей машине.