[英]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.