Kaynağa Gözat

Täiendused, et olemasolevat andmebaasitabelit ümber ei kirjutata.

Ardo Kubjas 3 yıl önce
ebeveyn
işleme
650c0a9865

+ 1 - 4
R/pk_lisame_jooned.R

@@ -151,10 +151,7 @@ pk_lisame_jooned <- function(obj = NULL, conf = NULL) {
         geometry_field = geom
       )
       ## Andmebaasi tabeli nimi: 2 esimest tähte tuleb schema nimest millest on andmed võetud, siis '_l_' s.o 'line' mis tähistab jooni.
-      conf$table <-
-        sprintf("data_l_%s_%s",
-                strtrim(as.character(andmed$schema[i]), 2),
-                andmed$table[i])
+      conf$table <- uus_tabel
       conf$schema <- obj
       output <-
         ruut::construct_to_gpkg_output_postgres_str(

+ 15 - 1
R/pk_lisame_rahvaarvud.R

@@ -30,6 +30,8 @@ pk_lisame_rahvaarvud <- function(obj = NULL, conf = NULL) {
     )
     return(NULL)
   }
+  ## Tabelid mis on juba andmebaasis ja mida ümber ei kirjutata.
+  olemasolevad_tabelid <- ruut::db_schema_tablenames(conf = conf)
 
   ## -------------------- Loop -----------------------
   intersect_layers <- c("bb2_epk2t_grid")
@@ -52,6 +54,18 @@ pk_lisame_rahvaarvud <- function(obj = NULL, conf = NULL) {
       )
 
     for (i in 1:nrow(andmed)) {
+      ## Kui olemasolev tabel eksisteerib andmebaasis, siis jätame arvutused
+      ## selle tabeliga vahele.
+      uus_tabel <-
+        sprintf("tif_stat_%s_epk02t_tif", andmed$table[i])
+      if (uus_tabel %in% olemasolevad_tabelid) {
+        cat(sprintf(
+          "\nTabel on %s.%s juba andmebaasis olemas.\n",
+          obj,
+          uus_tabel
+        ))
+        next
+      }
       geom <- "geom"
       # if (andmed$schema[i] %in% c("teeregister_wfs"))  geom <- "geometry" else geom <- "geom"
       ## 1.1 Ruutude sidumine asukoha järele.
@@ -347,7 +361,7 @@ DROP TABLE IF EXISTS  \"%s\".\"%s\";
       ## 2.2 Rahvaarv 100x100m ruutudes.
       tihedus <- sprintf("tif_stat_density_%s_tif", andmed$table[i])
       majade_arv <- "tif_stat_p_ma_aadressandmed_ee_tif"
-      rahvaarv <- sprintf("tif_stat_%s_epk02t_tif", andmed$table[i])
+      rahvaarv <- uus_tabel
       conn <- ruut::db_connect(conf = conf)
       q <- sprintf("
 DROP TABLE IF EXISTS  \"%s\".\"%s\";

+ 9 - 0
R/pk_teisendame_jooni.R

@@ -30,6 +30,8 @@ pk_teisendame_jooni <- function(obj = NULL, conf = NULL) {
     )
     return(NULL)
   }
+  ## Tabelid mis on juba andmebaasis ja mida ümber ei kirjutata.
+  olemasolevad_tabelid <- ruut::db_schema_tablenames(conf = conf)
 
   ## ====================== teisendused =====================
   # Layers list
@@ -45,6 +47,13 @@ pk_teisendame_jooni <- function(obj = NULL, conf = NULL) {
     )]
   layer_names <- layer_names[grepl("^data_l_", layer_names)]
   for (layer_name in layer_names) {
+    ## Kui olemasolev tabel eksisteerib andmebaasis, siis jätame arvutused
+    ## selle tabeliga vahele.
+    uus_tabel <- sprintf("grid_%s", gsub("^data_", "", layer_name))
+    if (uus_tabel %in% olemasolevad_tabelid) {
+      cat(sprintf("\nTabel %s on juba andmebaasis olemas.\n", uus_tabel))
+      next
+    }
     conn <- ruut::db_connect(conf = conf)
     try(ruumiline_obj <-
           sf::st_read(dsn = conn,

+ 11 - 2
R/pk_teisendame_liiklussagedusi.R

@@ -30,6 +30,8 @@ pk_teisendame_liiklussagedusi <- function(obj = NULL, conf = NULL) {
     )
     return(NULL)
   }
+  ## Tabelid mis on juba andmebaasis ja mida ümber ei kirjutata.
+  olemasolevad_tabelid <- ruut::db_schema_tablenames(conf = conf)
 
   ## ====================== teisendused =====================
   # Layers list
@@ -69,6 +71,14 @@ pk_teisendame_liiklussagedusi <- function(obj = NULL, conf = NULL) {
     c("sapa", "vaab", "ar", "sapaarv", "vaabarv", "ararv")
   if (is_line) {
     for (ls_klass in ls_klassid) {
+      ## Kui olemasolev tabel eksisteerib andmebaasis, siis jätame arvutused
+      ## selle tabeliga vahele.
+      uus_tabel <-
+        sprintf("grid_%s_%s", gsub("^data_", "", parent_table), ls_klass)
+      if (uus_tabel %in% olemasolevad_tabelid) {
+        cat(sprintf("\nTabel %s on juba andmebaasis olemas.\n", uus_tabel))
+        next
+      }
       ls <- ruumiline_obj[, ls_klass]
       ## Veeru ümbernimetamine
       names(ls) <- c("ls", "geom")
@@ -192,8 +202,7 @@ pk_teisendame_liiklussagedusi <- function(obj = NULL, conf = NULL) {
       # ruut::qgis_algorithm_search_by_word("Drop ")
       algorithm <- "native:deletecolumn"
       input <- vars$tmp_gpkg_file_input_1
-      conf$table <-
-        sprintf("grid_%s_%s", gsub("^data_", "", parent_table), ls_klass)
+      conf$table <- uus_tabel
       output <-
         ruut::construct_to_gpkg_output_postgres_str(
           conf = conf,

+ 17 - 6
R/pk_teisendame_polygoone.R

@@ -30,19 +30,30 @@ pk_teisendame_polygoone <- function(obj = NULL, conf = NULL) {
     )
     return(NULL)
   }
+  ## Tabelid mis on juba andmebaasis ja mida ümber ei kirjutata.
+  olemasolevad_tabelid <- ruut::db_schema_tablenames(conf = conf)
 
   ## ====================== teisendused =====================
   # Layers list
   layer_names <- ruut::db_schema_tablenames(conf = conf)
   layer_names <-
-    layer_names[!layer_names %in% c("a00_piir",
-                                    "a00_bb2",
-                                    "a00_piir_bb",
-                                    "bb2_epk10t_grid",
-                                    "bb2_epk02t_grid",
-                                    "bb2_epk2t_grid")]
+    layer_names[!layer_names %in% c(
+      "a00_piir",
+      "a00_bb2",
+      "a00_piir_bb",
+      "bb2_epk10t_grid",
+      "bb2_epk02t_grid",
+      "bb2_epk2t_grid"
+    )]
   layer_names <- layer_names[grepl("^data_a_", layer_names)]
   for (layer_name in layer_names) {
+    ## Kui olemasolev tabel eksisteerib andmebaasis, siis jätame arvutused
+    ## selle tabeliga vahele.
+    uus_tabel <- sprintf("grid_%s", gsub("^data_", "", layer_name))
+    if (uus_tabel %in% olemasolevad_tabelid) {
+      cat(sprintf("\nTabel %s on juba andmebaasis olemas.\n", uus_tabel))
+      next
+    }
     conn <- ruut::db_connect(conf = conf)
     try(ruumiline_obj <-
           sf::st_read(dsn = conn,

+ 9 - 0
R/pk_teisendame_punkte.R

@@ -30,6 +30,8 @@ pk_teisendame_punkte <- function(obj = NULL, conf = NULL) {
     )
     return(NULL)
   }
+  ## Tabelid mis on juba andmebaasis ja mida ümber ei kirjutata.
+  olemasolevad_tabelid <- ruut::db_schema_tablenames(conf = conf)
 
   ## ====================== teisendused =====================
   # Layers list
@@ -45,6 +47,13 @@ pk_teisendame_punkte <- function(obj = NULL, conf = NULL) {
     )]
   layer_names <- layer_names[grepl("^data_p_", layer_names)]
   for (layer_name in layer_names) {
+    ## Kui olemasolev tabel eksisteerib andmebaasis, siis jätame arvutused
+    ## selle tabeliga vahele.
+    uus_tabel <- sprintf("grid_%s", gsub("^data_", "", layer_name))
+    if (uus_tabel %in% olemasolevad_tabelid) {
+      cat(sprintf("\nTabel %s on juba andmebaasis olemas.\n", uus_tabel))
+      next
+    }
     conn <- ruut::db_connect(conf = conf)
     try(ruumiline_obj <-
           sf::st_read(dsn = conn,