[英]Rails & postgres - reindex after restore
最近,由于遇到配置错误,我不得不将备份数据库从Heroku恢复到本地设置。
这是从Heroku帖子中非常直接的:
https://devcenter.heroku.com/articles/heroku-postgres-import-export :
$ heroku pgbackups:capture
$ curl -o latest.dump `heroku pgbackups:url`
$ pg_restore --verbose --clean --no-acl --no-owner -h localhost -U myuser -d mydb latest.dump
问题在于,还原后,一些旧的(还原前)索引数据仍与新还原的数据一起提供。 即,在还原和数据库迁移之后,似乎仍有一些剩余索引数据。 请注意,在还原之前,我没有清除或删除旧数据库或对其进行任何操作……因此很明显,在还原前仍然有一些数据……表已经消失了,但是索引可能仍然存在。
我怀疑如果对表进行了某些更改,则将导致对所更改内容进行部分重新索引,并且将某种程度上解决该问题。 可以肯定的是,当我通过控制台对记录进行更改时,剩余数据已更新(现在是正确的)。
所以我的问题是多部分的...
为什么还原无法清除数据库中的所有内容并“从头开始”? (还有其他方法吗?)
是否有更好的程序化方法通过rake或console重新索引表?
对于searchkick,我使用:
rake searchkick:reindex CLASS=Blog
在模型中,我使用类似:
blog.reindex
但是我还没有找到一种执行基本表重新索引的命令/功能方法(没有某种类型的技巧可以触及每条记录)。
根据OP对我的评论的回答,我认为这是将完整的数据库备份应用于现有数据库的结果,导致还原的数据与现有数据(包括陈旧索引)之间出现某种交叉授粉。
我建议的是,如果备份是整个数据库:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.