2013-04-28 35 views
6

我升级并随后在OS X Mountain Lion上重新安装PostGIS & PostgreSQL。当尝试使用PostGIS的扩展,我收到以下错误:PostGIS Homebrew安装引用旧路径?

ERROR: could not open extension control file "/usr/local/Cellar/postgresql/ 
9.2.3/share/postgresql/extension/postgis.control": No such file or directory 

看来,PostGIS的(和PostgreSQL以及??)仍然在/postgresql/9.2.3/目录寻找所需的文件,而不是在/postgresql/9.2.4/目录。我用自制通过以下命令删除的PostgreSQL所有先前版本:

brew remove --force postgresql 

可能有人请点我在正确的方向,为什么发生此问题? (有什么地方必须有一个挥之不去的配置文件?)

任何帮助将不胜感激。

回答

1

Homebrew的设计通常会在removeupgrade期间留下用户可编辑的配置文件和生成的数据文件,以便在版本之间保留它们。听起来你是对的,这是一个配置文件留下的地方。

/usr/local/etc中没有postgres的全局配置文件。所以这可能是用户数据文件。您是否使用以前版本的postgres创建了任何数据库并在其中使用了postgis扩展?这些数据库中的配置文件可能指的是旧的postgres版本。这些数据库通常在/usr/local/var/postgres之下。查看下面的.conf文件,看看是否可以编辑它们来修复扩展路径或重新创建数据库。

12

问题是你有一个运行在代码库9.2.3版本上的psql服务器。为了测试这个,加载一个psql控制台,你应该在顶部看到这个:

psql (9.2.4, server 9.2.3) 
Type "help" for help. 

请注意上面的“server 9.2.3”注释。如果你正在运行的服务器的正确的版本,你反而会看到这一点:

psql (9.2.4) 
Type "help" for help. 

为了解决这个问题,只要按照brew info postgresql上卸载给出装载LaunchAgent的说明 - 这将重新启动服务器与新代码:

To reload postgresql after an upgrade: 
    launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist 
    launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist 
+0

为我修好了!谢谢 – bantic 2013-08-06 01:51:57

+0

非常感谢 – rurabe 2014-04-24 22:36:53

1

我只是碰到了这个确切同样的问题,之后,这些解决方案并没有解决它,我发现我自己的一个:

brew uninstall postgis && brew install postgis 

这一工作的关键站出来我在构建输出的PostGIS:

==> ./configure --with-projdir=/usr/local --with-jsondir=/usr/local/opt/json-c --with-pgconfig=/usr/local/Cellar/postgresql/9.4.4/bin/pg_config --disable-nls 

注意,它使用pg_config,最有可能的,以确定需要的地方存储所有必要的扩展名的文件。

0

在终端,我跑

$ psql 

在psql里,它给我这个

> psql (9.6.3, server 9.5.7) 
> Type "help" for help. 

我试图运行下面的

> CREATE EXTENSION postgis; 

,并得到该错误消息

> ERROR: could not open extension control file "/usr/local/Cellar/[email protected]/9.5.7/share/[email protected]/extension/postgis.control": No such file or directory 

我不干PSQL通过

> \q 

然后跑到

$ brew services list 

,然后回来,结果如下

Name   Status User  Plist 
mysql   stopped   
[email protected]  stopped   
postgresql  stopped   
[email protected] started doquyena /Users/doquyena/Library/LaunchAgents/[email protected] 
redis   stopped 

我的工作,我的psql的是上运行不兼容的psql服务器,所以我用下面的命令纠正它

$ brew services stop [email protected] 
$ brew services start postgresql 

当我回到PSQL

$ psql 

现在显示这表明我现在是一个匹配的服务器上

> psql (9.6.3) 
> Type "help" for help. 

因此,没有错误消息当我再尝试再次创建扩展名

> CREATE EXTENSION postgis; 

然后我w因为能够创建像这样的postgis数据表而没有任何问题

> CREATE TABLE s_test(geom geometry);