我尝试将索引列添加到两个现有表中。
add_column :places_1, :simple_geometry, :geometry, geographic: false, srid: 3857
add_index :places_1, :simple_geometry, using: :gist
add_column :places_2, :simple_geometry, :geometry, geographic: false, srid: 3857
add_index :places_2, :simple_geometry, using: :gist
该操作在第一个表上运行正常,但在尝试在第二个表上添加索引时出错。
PG :: IoError:错误:无法读取文件中的块180140 " base / 16384 / 1778170.1":输入/输出错误:CREATE INDEX " index_places_2_on_simple_geometry" ON" places_2"使用要点 (" simple_geometry&#34)
列/索引配置完全相同,所以我不明白为什么它在第二个表上失败。
答案 0 :(得分:0)
看起来确实是某种腐败,因为我得到另一个"无法读取块"我尝试pg_dump表时出错:
pg_dump:来自服务器的错误消息:ERROR:无法读取块 180140 in file" base / 16384/1778170.1" ;:输入/输出错误
谢天谢地,这是一个本地开发数据库,所以我不关心数据。截断表并从生产中重新填充后,问题就消失了。
如果我将来遇到数据库问题,我将重新开始使用新的数据库,但是现在从这一个表中刷新数据似乎可以解决问题。