【问题标题】:Django and Postgis: How can I create a spatial table with CONSTRAINT enforce_geotype_geom in Django?Django 和 Postgis:如何在 Django 中使用 CONSTRAINT enforce_geotype_geom 创建空间表?
【发布时间】:2014-06-13 10:34:09
【问题描述】:

我正在尝试创建这样的空间表(from here):

CREATE TABLE landmarks
(
  id serial NOT NULL,
  name character varying(50),
  the_geom geometry,
  CONSTRAINT landmarks_pkey PRIMARY KEY (gid),
  CONSTRAINT enforce_dims_the_geom CHECK (st_ndims(the_geom) = 2),
  CONSTRAINT enforce_geotype_geom CHECK (geometrytype(the_geom) = 'POINT'::text OR the_geom IS NULL),
  CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = 4326)
);

如何在 Django 模型中创建这样的表?我知道如何创建字段但不知道如何添加CONSTRAINT

非常感谢!!

【问题讨论】:

    标签: django postgresql postgis psql


    【解决方案1】:

    2.x 之前的旧 PostGIS 模型使用问题中的约束。较新的样式使用像 geometry(Point, 4326) 这样的 typmod。

    旧样式可以使用适当的 DDL 手动设置,或使用实用函数 AddGeometryColumnuse_typmod=false

    通常建议使用较新的 typmod 样式,而不是较旧的基于约束的样式。

    【讨论】:

      猜你喜欢
      • 2020-08-03
      • 2012-09-17
      • 1970-01-01
      • 1970-01-01
      • 2019-07-06
      • 1970-01-01
      • 2011-10-24
      • 2021-03-16
      • 1970-01-01
      相关资源
      最近更新 更多