添加索引

时间:2018-03-15 01:41:05

标签: ruby-on-rails postgresql rails-activerecord postgis

我尝试将索引列添加到两个现有表中。

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)

列/索引配置完全相同,所以我不明白为什么它在第二个表上失败。

1 个答案:

答案 0 :(得分:0)

看起来确实是某种腐败,因为我得到另一个"无法读取块"我尝试pg_dump表时出错:

  

pg_dump:来自服务器的错误消息:ERROR:无法读取块   180140 in file" base / 16384/1778170.1" ;:输入/输出错误

谢天谢地,这是一个本地开发数据库,​​所以我不关心数据。截断表并从生产中重新填充后,问题就消失了。

如果我将来遇到数据库问题,我将重新开始使用新的数据库,但是现在从这一个表中刷新数据似乎可以解决问题。