如何在windows 7中配置database.yml以使用postgis

时间:2012-12-01 09:55:47

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

我的database.yml开发部分如下所示:

发展:

  adapter: postgis
  encoding: unicode
  database: openData_development
  pool: 5
  username: postgres
  password: test1234
  schema_search_path: "public,postgis"
  script_dir: C:\Program Files (x86)\PostgreSQL\9.2\share\contrib\postgis-2.0

rake db:create working,创建了openData_development架构。 但我不能使用postgis ......

如果我想创建一个像:

这样的表
CREATE TABLE bezirks (
    id integer NOT NULL,
    name character varying(255),
    beznr integer,
    district_code integer,
    main_id integer NOT NULL,
    latlon geometry,
    CONSTRAINT enforce_dims_latlon CHECK ((st_ndims(latlon) = 2)),
    CONSTRAINT enforce_geotype_latlon CHECK (((geometrytype(latlon) = 'MULTIPOLYGON'::text) OR (latlon IS NULL))),
    CONSTRAINT enforce_srid_latlon CHECK ((st_srid(latlon) = 4326))
);

我收到错误:

ERROR:  Type »geometry« doesnt exist
LINE 27:     latlon geometry,

1 个答案:

答案 0 :(得分:1)

使用postgis适配器不会在db上自动安装postgis扩展。

你必须自己做;一个帮助实现自动化的解决方案是在您的服务器上创建名为“template_postgis”的“裸”数据库,像往常一样在其上安装postgis扩展(按照postgis网站上的安装指南),然后将其添加到您的database.yml的:

development:
  template: template_postgis

在每个dbs上执行此操作,因此rails会将它们创建为此模板的副本。