【问题标题】:Tables not recognized on restored geodjango postgis backup在恢复的 geodjango postgis 备份上无法识别表
【发布时间】:2011-08-27 01:31:07
【问题描述】:

所以我在执行一些我设法搞砸的计算之前使用pg_dump 备份了我的geodjango postgis 数据库。我使用

创建了一个新数据库
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 中列出它们时存在重复的表名)。不幸的是,我发现我的错误的方法是删除坏表来重新创建它,所以为了重现这个错误,我可能不得不使用时间机器。仍然很奇怪,当我可以物理访问我的工作机器时,我会试一试。

【问题讨论】:

    标签: django postgresql postgis database-backups


    【解决方案1】:

    那么你的 appname_model 表在那里还是一个视图?它是公开的还是其他命名的架构?

    如果该表在那里,那么您很可能将它放在不在您的数据库搜索路径中的架构中。检查旧数据库的 search_path。它可能包含默认值以外的其他内容,或者您​​的默认搜索架构是在 postgresql.conf 中设置的并且是非标准的。

    【讨论】:

    • appname_model 是一个表,它确实存在于数据库中。不过看我的更新。非常感谢您的建议。我会尽量测试一下。
    猜你喜欢
    • 2014-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-05
    • 1970-01-01
    • 1970-01-01
    • 2011-11-21
    相关资源
    最近更新 更多