2

I had a table with a column set to 'point' in doctrine2, but this was changed to 'string' and updated.

I can't change it back to 'point' in doctrine2, I get an error:

[Doctrine\DBAL\Exception\DriverException]
  An exception occurred while executing 'ALTER TABLE opr_records ALTER the_geom TYPE public.geometry':
  SQLSTATE[42804]: Datatype mismatch: 7 ERROR:  column "the_geom" cannot be cast automatically to type geometry
  HINT:  Specify a USING expression to perform the conversion.

[Doctrine\DBAL\Driver\PDOException]
  SQLSTATE[42804]: Datatype mismatch: 7 ERROR:  column "the_geom" cannot be cast automatically to type geometry
  HINT:  Specify a USING expression to perform the conversion.

[PDOException]
  SQLSTATE[42804]: Datatype mismatch: 7 ERROR:  column "the_geom" cannot be cast automatically to type geometry
  HINT:  Specify a USING expression to perform the conversion.

There is already data in the column for example:

id,geom
0,0101000020E610000091AE217D7A881A40551A3D49BD424740
1,0101000020E61000009F6A8C15600F1B407EDF9D1DCA3E4740
2,0101000020E6100000525C9D4D06831A40F459A7CCFF424740

I could connect to the DB and perform the update manually, however I am unsure on the SQL to perform ? Something like:

ALTER TABLE opr_records ALTER COLUMN the_geom TYPE geometry USING ST_geom(the_geom);

1 Answer 1

3

The function st_geom does not exist.

Try this :

ALTER TABLE opr_records ALTER COLUMN the_geom TYPE geometry(Point) USING st_astext(the_geom);
1
  • One can also set the ESPG using the function geometry(<GEOMETRY>, EPSG)
    – four-eyes
    Nov 12, 2022 at 17:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.