kb:pg:migracija_upotrebom_queryfind

Migracija podataka i upita upotrebom QueryFind (QF) programa

Pokrenuti pgAdmin (preporučena verzija 3.1.22.1) i napraviti bazu bXX gde je XX broj firme koja se prebacuje na PGS, (npr. b4 za firmu sa firid=4) i zadati dozvole nad bazom:
(na slici je i grupa BalansMaster, ali ona se koristi samo na Melany PGS serveru)

  1. Pokrenuti QF i otvoriti JET bazu.
  2. Klinkuti na meni PostgreSQL –> Podešavanja
  3. U polje “Database” upisati broj firme koja se prebacuje na PGS dodavši prefiks b (npr. b4 za firid=4)
  4. U polje “Schema” upisati public ako se radi o tekućoj godini ili 20XX ako se radi o arhivi (npr. 2016 za arhivu 2016)

    Primer prvog i drugog panela sa postavkama

  5. Klinkuti na meni PostgreSQL –> Izvoz u Postgres skript –> Izvezi strukturu i podatke

Nakon izvoza strukture i podataka u direktorijumu JET baze će se pojaviti fajlovi

pgexp_01_create.sql   -- iskazi koji prave tabele
pgexp_02_add.sql      -- iskazi koji pune tabele podacima
pgexp_03_idx.sql      -- iskazi koji prave indekse na tabelama
pgexp_04_system.sql   -- iskazi koji prave sistemske funkcije i operatore
pgexp_05_alter.sql    -- iskazi koji prave strane ključeve na tabelama

Potrebno ih je tim redosledom sprovesti kroz Query Tool pgAdmin.

To se radi tako što se klikne na bazu (npr. b4) i onda na dugme sa lupom na kojoj piše SQL.

U novootvorenom prozoru otvoriti (File –> Open…) SQL fajlove koji su generisani pri izvozu strukture i podataka i pokrenuti ih klikom na dugme sa zelenom strelicom pored koje piše SQL.\ Po okončanju izvršavanja svakog od ova 3 skript fajla proveriti u donjem delu da li se pojavila neka poruka u kojoj postoje reči ERROR ili WARNING - iskopirati ceo tekst iz donjeg panela u notepad pa sa Ctrl+F potražiti ERROR i WARNING.

Ako PGS server nije na računaru sa kojeg radi izvoz u PGS pre izvršenja fajla pgexp_03_add.SQL treba uraditi sledeće:

  • PGS server je na Windows računaru:
  1. N​​​​a računaru sa kojeg se radi izvoz u PGS napraviti deljeni direktorijum tako da mu se može pristupiti sa računara na kojem je PGS server
  2. pre pokretanja fajla pgexp_03_add.sql, u deljeni folder treba iskopirati sve fajlove iz podfoldera “pgexp_tables” koji je u folderu JET baze
  3. otvoriti fajl pgexp_03_add.sql i prepraviti lokalne putanje do *.dump fajlova na mrežne putanje iz deljenog direktorijuma
  • PGS Server je na *nix računaru (linux, freenas, bsd, unix,…):
  1. Kontra od Windows. Ne praviti nikakav deljeni direktorijum, nego pristupiti *nix računaru i prekopirati sve *.dump fajlove na putanju na *nix računaru kojoj PostgreSQL proces (tačnije, user pod kojim je pokrenut PostgreSQL proces) ima dozvolu da pristupa.
  2. U fajlu pgexp_03_add.sql promeniti sve putanje na tu putanju. Primer, dump fajlovi su kopirani na lokalnu *nix putanju “/var/tmp/sql/pgexp_tables”. Ako jedna originalna komanda u pgexp_03_add.sql glasi COPY banke FROM 'C:\Balans\Ddata\0\pgexp_tables\banke_data.dump' WITH DELIMITER '|'; treba je promeniti u COPY banke FROM '/var/tmp/sql/pgexp_tables/banke_data.dump' WITH DELIMITER '|';
    NAPOMENA! Ukoliko se koristi sistem kontejnera aplikacija (docker, kubernetes, i sl.): Svaki kontejner se, gledano spolja, ponaša kao zaseban računar, tako da nova putanja mora da bude odnosna na taj kontejner, a ne na ceo operativni sistem koji “ugošćava” kontejner. PostgreSQL na FreeNAS jeste jedan kontejner (termin na FreeNAS je “jail”).
  3. Izvršiti pgexp_03_add.sql fajl.

Nakon odrađenih SQL fajlova kroz pgAdmin vratiti se u QF i kliknuti na meni PostgreSQL –> Spisak samostalnih upita za prevod.
U listi sa rezultatom pretrage će se pojaviti imena svih upita koji pri izvršavanju ne pozivaju druge upite.
Klikom na prvi od njih ispod spiska će se pojaviti sličica kompjutera sa crvenom strelicom, pa klik na nju šalje sve upite iz spiska u PGS server.

Upiti koji ostanu neprevedeni biće prikazani u poruci na kraju procesa.

Ostali su za prevođenje upiti koji koji pri izvršavanju pozivaju druge upite.
Njihov spisak se dobija klikom na meni PostgreSQL –> Spisak zavisnih upita za prevod
I njih treba poslati u PGS server na isti način kao i samostalne upite.

Imena upita koji nisu prevedeni snimiti u direktorijum JET baze koja je prebačena na PGS radi analize i eventualnog ručnog prevoda za neophodne upite.

  • kb/pg/migracija_upotrebom_queryfind.txt
  • Last modified: 2019/07/08 12:58
  • by nessa