我正在使用rails 3.2.15。我有两个postgresql数据库,其中一个是主要的,另一个是postgis。从模型Postgis我连接到postgis数据库,如下所示:
class Postgis < ActiveRecord::Base
establish_connection :postgis_db
self.table_name = 'geometry_columns'
self.inheritance_column = :_type_disabled
end
在开发模式下一切正常。但是,当我切换到生产Web服务器时,无法启动下一个异常
gems/activerecord-3.2.15/lib/active_record/connection_adapters/postgresql_adapter.rb:1163:in `exec': PG::UndefinedTable: ERROR: relation "postgis" does not exist (ActiveRecord::StatementInvalid)
LINE 5: WHERE a.attrelid = '"postgis"'::regclass
^
: SELECT a.attname, format_type(a.atttypid, a.atttypmod),
pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod
FROM pg_attribute a LEFT JOIN pg_attrdef d
ON a.attrelid = d.adrelid AND a.attnum = d.adnum
WHERE a.attrelid = '"postgis"'::regclass
AND a.attnum > 0 AND NOT a.attisdropped
ORDER BY a.attnum
它没有连接到postgis数据库并尝试在主数据库中查找postgis表。我尝试了不同的方法连接到postgis DB,但结果是一样的。
编辑:
database.yml:
postgis_db:
adapter: postgresql
encoding: utf8
reconnect: false
database: mydb_gis
pool: 5
username: osmsrv
password: osmsrv
host: localhost
schema_search_path: public
production:
adapter: postgresql
encoding: utf8
reconnect: false
database: gis
pool: 5
username: osmsrv
password: osmsrv
host: localhost
答案 0 :(得分:1)
我解决了这个问题。 大约10天前,我建立了与第二个DB连接的模型,它工作正常。当我切换到生产时,我确信连接在开发中有效,但我错了。在开发连接也不起作用。问题出在gem'texticle'“2.0”中。删除后,连接正常。