我正在尝试使用ubuntu 机器将一些 Open Street Maps.osm.pbf
文件迁移到我的postgresql
数据库中。osm2pgsql
当我在处理完成后检查数据时,列的tags
类型为 astext[]
并填充了如下数据:
{highway,residential,lit,yes,name,"St. Nicholas Street",name:en,"Saint Nicholas Street",name:mt,"Triq San Nikola"}
问题一:
- 那是
hstore
类型数据吗?我似乎无法像这样查询它。我试过这种格式:
SELECT * FROM planet_osm_ways WHERE tags ? 'highway' LIMIT 20;
大喊这个错误:
ERROR: operator does not exist: text[] ? unknown
LINE 1: ...T *, tags as tags FROM planet_osm_ways WHERE tags ? 'highway...
问题2:
- 因此,假设上面的错误和格式意味着数据根本没有保存为
hstore
类型化数据,我该如何纠正我的迁移过程来解决这个问题?
我的过程:
- 在 linux ubuntu 上使用 pgAdmin 3 创建一个新数据库。
- 将 hstore 扩展添加到数据库 (pgAdmin)
- 将 postgis 扩展添加到数据库 (pgAdmin)
- 超级用户进入终端中的 postgres 用户
osm2pgsql -c -d <DB_NAME> <FILE_PATH> --slim --hstore --multi-geometry
- 运行迁移命令:
sudo -u postgres -i
就是这样,osm2pgsql
它的事情并给出了一个成功的输出。
那么我在这个过程中缺少什么?