**Edit** : As of 2021, the preferred solution would be to use the [{sf}][1] package, even when using {sp} classes : library(sf) library(RPostgres) con <- dbConnect(Postgres(), user = "PG_USER", password = "PG_PASS", host = "192.0.2.0",dbname = "dbname") st_write(st_as_sf(my_layer), con, Id(schema = "public", table = "my_layer")) --------- **Former answer** : The package [PostGIStools][2] can help. See for example the [vignette][3]. Another way could be to transform your Spatial*DataFrame geometry to WKT, insert into PostGIS using the classic RPostgreSQL package and re-create the geom there. [1]: https://r-spatial.github.io/sf/index.html [2]: https://cran.r-project.org/web/packages/postGIStools/index.html [3]: https://cran.r-project.org/web/packages/postGIStools/vignettes/postGIStools-vignette.html