|
|
@@ -0,0 +1,69 @@
|
|
|
+#' Export GPKG to PostgreSQL
|
|
|
+#'
|
|
|
+#' Exports a gpkg file layer into a PostgreSQL database.
|
|
|
+#'
|
|
|
+#' gtype: Output geometry type 'enum':. Acceptable values: Number of selected option, e.g. '1' or Comma separated list of options, e.g. c(1,3). See more: \url{https://gdal.org/drivers/vector/pg.html}.
|
|
|
+#' - 0:
|
|
|
+#' - 1: NONE
|
|
|
+#' - 2: GEOMETRY
|
|
|
+#' - 3: POINT
|
|
|
+#' - 4: LINESTRING
|
|
|
+#' - 5: POLYGON
|
|
|
+#' - 6: GEOMETRYCOLLECTION
|
|
|
+#' - 7: MULTIPOINT
|
|
|
+#' - 8: MULTIPOLYGON
|
|
|
+#' - 9: MULTILINESTRING
|
|
|
+#'
|
|
|
+#' @param gpkg Gpkg file path.
|
|
|
+#' @param layer A gpkg file layer [sf::st_layers()].
|
|
|
+#' @param conf A list() of configuration variables. Default values \code{\link[ruut]{get_config}}.
|
|
|
+#' @return No output.
|
|
|
+#' @seealso [ruut::get_config()], [ruut::copy_shp_to_db()], [ruut::copy_qgis_object_to_db()]
|
|
|
+#' @keywords postgis, gpkg
|
|
|
+#' @export
|
|
|
+#' @examples
|
|
|
+#' \dontrun{
|
|
|
+#'
|
|
|
+#' conf <- ruut::get_config()
|
|
|
+#' gpkg_file <- "/home/ardo/aaa/data/gpkg/grids/estonian_grids.gpkg"
|
|
|
+#' # Vaata layer'eid
|
|
|
+#' sf::st_layers(gpkg_file)
|
|
|
+#' # Vali layer
|
|
|
+#' layer <- "epk200t_grid"
|
|
|
+#' conf$table <- "aaa_1"
|
|
|
+#' conf$schema <- "data"
|
|
|
+#' copy_gpkg_to_db(gpkg = gpkg_file, layer = layer, conf = conf)
|
|
|
+#' copy_gpkg_to_db(gpkg = gpkg_file, conf = conf) # viga
|
|
|
+#' }
|
|
|
+copy_gpkg_to_db <- function(gpkg = NULL, layer = NULL, conf = NULL) {
|
|
|
+ if (is.null(gpkg)) {
|
|
|
+ return(cat("\ngpkg fail puudu.\n"))
|
|
|
+ }
|
|
|
+ if (is.null(layer)) {
|
|
|
+ return(cat("\ngpkg layer puudu.\n"))
|
|
|
+ }
|
|
|
+ if (is.null(conf)) conf <- ruut::get_config()
|
|
|
+ layer <- sprintf("|layername=%s", layer)
|
|
|
+ input <- sprintf("%s%s", gpkg, layer)
|
|
|
+ # obj - objekti nimetus (näiteks: valga)
|
|
|
+ # ruut::qgis_algorithm_search_by_word(str = "importinto")
|
|
|
+ algorithm <- "qgis:importintopostgis"
|
|
|
+ # cat(qgisprocess::qgis_show_help(algorithm = algorithm))
|
|
|
+ # qgisprocess::qgis_outputs(algorithm = algorithm)
|
|
|
+ result <- qgisprocess::qgis_run_algorithm(
|
|
|
+ algorithm = algorithm,
|
|
|
+ CREATEINDEX = 1,
|
|
|
+ DATABASE = tools::toTitleCase(tolower(conf$dbname)), # millegipärast peab algama suure tähega
|
|
|
+ DROP_STRING_LENGTH = 0,
|
|
|
+ ENCODING = conf$encoding,
|
|
|
+ FORCE_SINGLEPART = 0,
|
|
|
+ GEOMETRY_COLUMN = conf$geometry_column,
|
|
|
+ INPUT = input,
|
|
|
+ LOWERCASE_NAMES = 1,
|
|
|
+ OVERWRITE = 1,
|
|
|
+ PRIMARY_KEY = conf$primary_key,
|
|
|
+ SCHEMA = conf$schema,
|
|
|
+ TABLENAME = conf$table,
|
|
|
+ )
|
|
|
+ # result
|
|
|
+}
|