Таблицы не распознаются в восстановленной резервной копии geodjango postgis

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


person Griffith Rees    schedule 27.08.2011    source источник


Ответы (1)


Так есть ли ваша таблица appname_model или это представление? Была ли это общедоступная или другая именованная схема?

Если таблица есть, то, скорее всего, она находится в схеме, которой нет в пути поиска базы данных. Проверьте search_path вашей старой базы данных. Возможно, он включал что-то отличное от стандартного, или ваша схема поиска по умолчанию установлена ​​в postgresql.conf и не является стандартной.

person LR1234567    schedule 27.08.2011
comment
appname_model — это таблица, и она существовала в базе данных. Смотрите мое обновление, хотя. Большое спасибо за предложение. Я постараюсь проверить это, когда смогу. - person Griffith Rees; 28.08.2011