0

私の 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 が機能し、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,
4

1 に答える 1

1

postgis アダプターを使用しても、データベースに postgis 拡張機能が自動的にインストールされるわけではありません。

自分でやらなければなりません; これを自動化するための 1 つの解決策は、サーバー上に「template_postgis」という名前の「ベア」データベースを作成し、通常どおりに postgis 拡張機能をインストールして (postgis Web サイトのインストール ガイドに従ってください)、これをデータベース.yml:

development:
  template: template_postgis

Railsがこのテンプレートのコピーとしてデータベースを作成するように、すべてのデータベースでそれを行います。

于 2012-12-01T13:12:34.660 に答える