首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将时间戳字段添加到ogr2ogr导入Postgis

将时间戳字段添加到ogr2ogr导入Postgis
EN

Stack Overflow用户
提问于 2017-07-14 01:22:35
回答 2查看 601关注 0票数 2

我设法创建了一个模型/模式,并使用sequelize将地理位置插入到Postgis中。由于我有很多积分(>100K),我渴望回到我过去使用的导入方式,使用ogr2ogr (gdal),它更快(几乎是瞬间而不是>20分钟)。因为我想在初始导入后继续使用sequelize,所以我仍然希望sequelize预先创建模型/模式,但然后使用ogr2ogr导入,然后使用sequelize继续CRUD。

Here我找到了这个片段“…。解决这个问题的一种方法是提前创建表结构,并使用OGR2OGR加载数据。“这给了我一个想法,这也可以在Postgres/Postgis上工作。

Sequelize为createdAt和updatedAt创建时间戳列,这是我喜欢的。但是当我使用ogr2ogr时,我会得到“null value in column”“createdAt违反了非空约束”作为loginfo。

基于this稍微类似的问题,我尝试通过添加一个-sql选项来添加一个createdAt列:

代码语言:javascript
复制
ogr2ogr -f PostgreSQL PG:"host='0.0.0.0' user='root' port='5432' dbname='db' password='pw'" /home/user/geojsonImportfile.json -nln "DataPoints" -a_srs EPSG:4326 -sql "SELECT url, customfield, wkb_geometry, CURRENT_TIMESTAMP as createdAt FROM '/home/usr/geojsonImportfile.json'" -dialect 'PostgreSQL'

运行此命令时,我得到的错误是:

代码语言:javascript
复制
ERROR 1: SQL Expression Parsing Error: syntax error, unexpected end of string, expecting '.'. Occurred around :
home/user/geojsonImportfile0.json'

除了我缺乏SQL知识之外,我不确定这是否可以工作。

我如何解决这个问题,即使用ogr2ogr进行导入,但保留时间戳列?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-14 02:52:15

@JGH遵循您的建议,有一个默认的时间戳是有意义的。我已经可以使用sequelize进行设置了,正如here所讨论的那样

代码语言:javascript
复制
var user = sequelize.define('user', {
  createdAt: {
    type: DataTypes.DATE,
    field: 'beginTime',
    defaultValue: sequelize.literal('NOW()')
  }
}, {
  timestamps: true,

});
票数 1
EN

Stack Overflow用户

发布于 2017-07-14 02:50:53

使用sequelize.define创建表时,createdAtupdatedAt列将自动创建为timestamp with time zone NOT NULL

但您可以在sequelize定义脚本中规定非空约束:

代码语言:javascript
复制
const Mytable = sequelize.define('mytable', {
    id: {type: Sequelize.INTEGER, primaryKey: true},
    createdAt: {type: Sequelize.DATE, validate: {notNull:false}}
});

然后创建如下表格:

代码语言:javascript
复制
CREATE TABLE mytables
(
  id integer NOT NULL,
  "createdAt" timestamp with time zone,
  "updatedAt" timestamp with time zone NOT NULL,
  CONSTRAINT mytables_pkey PRIMARY KEY (id)
)

http://docs.sequelizejs.com/manual/tutorial/models-definition.html#configuration

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45087284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档