Javascript 如何从Knex种子数据到PSQL种子纬度和经度?

Javascript 如何从Knex种子数据到PSQL种子纬度和经度?,javascript,postgresql,migration,psql,knex.js,Javascript,Postgresql,Migration,Psql,Knex.js,我正在使用传单创建一个基于地图的项目。我在PostgreSQL上建立了一个数据库,并使用Knex进行迁移 我已经创建了一系列种子数据,最后一个Knex种子用于向表中添加映射事件,其中一个列类型是PSQL中的POINT。然而,当我尝试在Knex上添加纬度和经度时,它不允许我推到桌子上。如何将lat/lng发布到表格中 import { Knex } from "knex"; export async function seed(knex: Knex): Promise<

我正在使用传单创建一个基于地图的项目。我在PostgreSQL上建立了一个数据库,并使用Knex进行迁移

我已经创建了一系列种子数据,最后一个Knex种子用于向表中添加映射事件,其中一个列类型是PSQL中的POINT。然而,当我尝试在Knex上添加纬度和经度时,它不允许我推到桌子上。如何将lat/lng发布到表格中

import { Knex } from "knex";

export async function seed(knex: Knex): Promise<void> {
    // Deletes ALL existing entries
    await knex("events").del();

    // Inserts seed entries
    await knex("events").insert([
        { eventlocation: {x: 22.28052, y: 114.15749}, eventname: "party", description: "party at LKF 10pm", date: knex.fn.now(), userid: 1},
    ]);
};
这就是被抛弃的错误:

Error: Error while executing "/Users/beaumont/Desktop/lectures/project3/seeds/4-create-events.ts" seed: insert into "events" ("created_at", "description", "eventlocation", "eventname", "userid") values (CURRENT_TIMESTAMP, $1, $2, $3, $4) - invalid input syntax for type point: "{"x":22.28052,"y":114.15749}"
    at Seeder._waterfallBatch (/Users/beaumont/Desktop/lectures/project3/node_modules/knex/lib/migrations/seed/Seeder.js:146:23)
error: insert into "events" ("created_at", "description", "eventlocation", "eventname", "userid") values (CURRENT_TIMESTAMP, $1, $2, $3, $4) - invalid input syntax for type point: "{"x":22.28052,"y":114.15749}"
    at Parser.parseErrorMessage (/Users/beaumont/Desktop/lectures/project3/node_modules/pg-protocol/src/parser.ts:369:69)
    at Parser.handlePacket (/Users/beaumont/Desktop/lectures/project3/node_modules/pg-protocol/src/parser.ts:188:21)
    at Parser.parse (/Users/beaumont/Desktop/lectures/project3/node_modules/pg-protocol/src/parser.ts:103:30)
    at Socket.<anonymous> (/Users/beaumont/Desktop/lectures/project3/node_modules/pg-protocol/src/index.ts:7:48)
    at Socket.emit (node:events:378:20)
    at Socket.EventEmitter.emit (node:domain:470:12)
    at addChunk (node:internal/streams/readable:313:12)
    at readableAddChunk (node:internal/streams/readable:288:9)
    at Socket.Readable.push (node:internal/streams/readable:227:10)
    at TCP.onStreamRead (node:internal/stream_base_commons:190:23)
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
Error:Error which executing”/Users/beumont/Desktop/teaches/project3/seeds/4-create-events.ts“seed:insert-into“events”(“created_at”、“description”、“eventlocation”、“eventname”、“userid”)值(当前_时间戳、$1、$2、$3、$4)-类型点的输入语法无效:“{”x:22.28052,“y”:114.15749}”
在Seeder._Waterwallbatch(/Users/beumont/Desktop/notices/project3/node_modules/knex/lib/migrations/seed/Seeder.js:146:23)
错误:在“事件”(“created_at”,“description”,“eventlocation”,“eventname”,“userid”)值(当前_时间戳,$1,$2,$3,$4)中插入-类型点的输入语法无效:“{“x”:22.28052,“y”:114.15749}”
在Parser.parseErrorMessage(/Users/beumont/Desktop/notices/project3/node_modules/pg protocol/src/Parser.ts:369:69)
位于Parser.handlePacket(/Users/beumont/Desktop/notices/project3/node_modules/pg protocol/src/Parser.ts:188:21)
在Parser.parse(/Users/beumont/Desktop/notices/project3/node_modules/pg protocol/src/Parser.ts:103:30)
在插座上。(/Users/beumont/Desktop/notices/project3/node_modules/pg protocol/src/index.ts:7:48)
在Socket.emit(节点:事件:378:20)
位于Socket.EventEmitter.emit(节点:域:470:12)
在addChunk(节点:内部/流/可读:313:12)
在readableAddChunk(节点:内部/streams/readable:288:9)
在Socket.Readable.push(节点:内部/streams/Readable:227:10)
在TCP.onStreamRead(节点:内部/stream\u base\u commons:190:23)
错误命令失败,退出代码为1。
信息访问https://yarnpkg.com/en/docs/cli/run 有关此命令的文档。

把它写在纸上以备将来参考


为了解决这个问题,在knex种子文件中,输入
knex.raw('POINT(x,y)')
将坐标添加到PostgreSQL中。

您可以共享错误日志吗?@AsadJivani Hi Asad,我现在已经添加了错误日志。尝试将
事件位置:{x:22.28052,y:114.15749}
替换为
事件位置:knowed.raw('(22.28052,114.15749)'))
在您的insert查询中。@AsadJivani您的语法似乎不起作用,但您让我开始测试其他语法,其中一个似乎起作用:
eventlocation:knex.raw('POINT(22.28052114.15749)
Error: Error while executing "/Users/beaumont/Desktop/lectures/project3/seeds/4-create-events.ts" seed: insert into "events" ("created_at", "description", "eventlocation", "eventname", "userid") values (CURRENT_TIMESTAMP, $1, $2, $3, $4) - invalid input syntax for type point: "{"x":22.28052,"y":114.15749}"
    at Seeder._waterfallBatch (/Users/beaumont/Desktop/lectures/project3/node_modules/knex/lib/migrations/seed/Seeder.js:146:23)
error: insert into "events" ("created_at", "description", "eventlocation", "eventname", "userid") values (CURRENT_TIMESTAMP, $1, $2, $3, $4) - invalid input syntax for type point: "{"x":22.28052,"y":114.15749}"
    at Parser.parseErrorMessage (/Users/beaumont/Desktop/lectures/project3/node_modules/pg-protocol/src/parser.ts:369:69)
    at Parser.handlePacket (/Users/beaumont/Desktop/lectures/project3/node_modules/pg-protocol/src/parser.ts:188:21)
    at Parser.parse (/Users/beaumont/Desktop/lectures/project3/node_modules/pg-protocol/src/parser.ts:103:30)
    at Socket.<anonymous> (/Users/beaumont/Desktop/lectures/project3/node_modules/pg-protocol/src/index.ts:7:48)
    at Socket.emit (node:events:378:20)
    at Socket.EventEmitter.emit (node:domain:470:12)
    at addChunk (node:internal/streams/readable:313:12)
    at readableAddChunk (node:internal/streams/readable:288:9)
    at Socket.Readable.push (node:internal/streams/readable:227:10)
    at TCP.onStreamRead (node:internal/stream_base_commons:190:23)
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.