postgis 확장자를 사용하여 postgresql 데이터에 지오메트리를 삽입하려고합니다. 특히, WKT 선 스트링을 삽입하려고합니다. 이것은 내가 무엇을했는지입니다 : 내가 가진Laravel을 사용하여 포스트 기어 함수로 삽입
SQLSTATE[42883]: Undefined function: 7 ERROR: function st_geomfromtext(text) does not exist
먼저 사용하여이 매개 변수를하려고 노력하지만, 같은 문제가 있었다 :
$sql = "INSERT INTO myschema.trail (\"name\", \"description\", \"user_id\", \"location_id\", \"source_file\", \"geom\")
VALUES ('".
$p['name']."', '".
$p['description']."', ".
\Auth::user()->user_id.", ".
$p['location_id'].", '".
'uploads/myfile'.",
ST_GeomFromText('$wkt'::text))";
\DB::insert($sql);
내가이 작업을 수행 할 때, 나는 오류가 발생합니다. 이 오류는 다음 생성 된 SQL 것을 보여준다 : 나는 복사 생성 된 SQL 문을 붙여 pgAdmin에서 쿼리를 실행하면
INSERT INTO myschema.trail ("name", "description", "user_id", "location_id", "source_file", "geom")
VALUES ('Test', 'Test', 1, 1, 'uploads/myfile', ST_GeomFromText('LINESTRING(-114.0653326549 49.2872680351, .............'))
는, 쿼리가 문제없이 실행합니다. 권한 상승 문제 였지만 응용 프로그램에서 postgres 사용자를 사용하려고 시도했지만 도움이되지 않았습니다.
쿼리의 postgis 부분을 제거하면 응용 프로그램에서 올바르게 실행됩니다. 어떤 이유로 든 내 Laravel 응용 프로그램은 postgis 기능을 사용할 수 없지만 pgAdmin은 사용할 수 있습니다.
누구나 전에이 사실을 눈치 채 셨나요? 아니면 어떻게 해결할 수있는 아이디어가 있습니까? 감사합니다
편집
난 그냥뿐만 아니라 다음과 같은 시도하고 내가 같은 오류가있어 :
Trail::create([
'name' => 'test',
'description' => 'test',
'user_id' => 1,
'location' => 1,
'source_file' => 'uploads/myfile',
'geom' => \DB::raw("ST_GeomFromText('$wkt'::text)")
]);
패키지가 WKT를 지원하지 않는 것처럼 보입니다. 빌드가 실패하고 문서가 끔찍한 것 같습니다. 또한, 내 모든 질문을 읽으면, 당신은 이미'DB :: insert()'를 시도했다는 것을 알게 될 것이다. 제안에 감사한다 – Sehael
문서에 동의하지 않는다. 소스 코드에서 WKT를 지원하는 것처럼 보입니다. – user4212639