sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo puedo importar un geoDataFrame a MySQL?

Después de probar muchas cosas, noté que la función to_sql no generaba la sintaxis MySQL correcta para que funcionara. Además, con el enfoque para cambiar a wkb, MySQL todavía no reconoció esa columna como geometría si dejo el texto como está (vea la imagen en la pregunta).

Lo que funcionó para mí fue cambiar el campo de geometría a cadena y actualizarlo en python para que se viera así:

Después de eso, procedí a usar el código a continuación, donde envío el marco de datos a MySQL y luego actualicé la tabla para establecer la columna de geometría:

regions.to_sql('pr_regions', con=conn, schema='eq_pr_db',
               if_exists='replace', index=False)

#add column type Polygon

conn.execute('''ALTER TABLE `eq_pr_db`.`pr_regions` 
                ADD COLUMN `geom` Polygon;''')

#populate new column by applying the ST_GeomFromText function to transform the string to geometry type.

conn.execute('''UPDATE `eq_pr_db`.`pr_regions`
                SET geom =  ST_GeomFromText(geometry) ;''')