SyMfonAK - vyvíjame databázy pomocou frameworku Symfony

Symfony PostgreSQL

Z SyMfonAK
Prejsť na: navigácia, hľadanie

Keď nepoznám názvy tabuliek:

SELECT table_name FROM information_schema.tables WHERE table_schema='public'


Export len dát -a a insert a nie copy, potom treba zmazať niektoré riadky pre import v symfony (php bin/console doctrine:database:import

/usr/lib/postgresql/8.4/bin/pg_dump -p 5433 --table="lkpzoochar" -a --column-inserts aves >/tmp/lkpzoochar2.sql

a načítanie v inej postgresql databáze pommocou psql: /usr/lib/postgresql/8.4/bin/psql -d aves -a -f /tmp/gis_stvorce2500.sql

Export aj s podmienkou:

/usr/lib/postgresql/8.4/bin/psql -p 5433 -d aves -c 'copy (select z.* from lkpzoospecies z left join lkpzoospecies_lkpaction a on z.id = a.lkpzoospecies_id where z.lkpzoogrp_id = 104 and (a.lkpaction_id !=22 or a.lkpaction_id !=1)) to stdout'  > /tmp/lkpzoospecies1.csv


Vyberie len jedinečné záznamy, hoci spojená tabuľku (tbl v úlohe spojováka lkpzoospecies_lkpaction) má viackrát akciu pre jednotlivé druhy a normálne by bol výstup toľko riadkov, koľko je jednotlých vyhovujúcich druhov v spojováku a má nejakú akciu.. vid distinct on (z.id) a tiez časť príkazu having


select distinct on (z.id) z.id, z.lkpzoospecies_lat, z.lkpzoospecies_sk, z.lkpzoospecies_dynamic_id, z.lkpzoospecies_subspecorder from lkpzoospecies z left join lkpzoospecies_lkpaction a on z.id = a.lkpzoospecies_id where z.lkpzoogrp_id = 104 group by z.id, z.lkpzoospecies_lat, z.lkpzoospecies_sk, z.lkpzoospecies_dynamic_id, a.lkpaction_id, z.lkpzoospecies_subspecorder having a.lkpaction_id is null or (a.lkpaction_id !=22 and a.lkpaction_id !=1) order by z.id;

Import/export GIS súborov (shapefile, GML..)

Import z GML súboru (stvorce2500_svkb10km do tabuľky gis_stvorce2500 tak, že EPSG gml z 900913 nastaví v tabuľke v geom položke na EPSG:4326

 ogr2ogr -f PostgreSQL PG:'dbname=aves user=aves host=localhost password= port=5433' -s_srs "EPSG:900913" -t_srs "EPSG:4326" /tmp/stvorce2500_svkb10km.gml -nln gis_stvorce2500

alebo

ogr2ogr -f PostgreSQL PG:'dbname=aves user=aves host=localhost password= port=5433' -s_srs "EPSG:900913" -t_srs "EPSG:4326" /tmp/df_sk_cs.gml -nln gis_dfscssk

Zastaviť príliš dlho bežiaci proces

V prostredí pgsql vypísať procesy príkazom:

select * from pg_stat_activity;

Zapamatať si procpid číslo dlho bežiaceho procesu a zastaviť ho týmto príkazom, povedzme procpid je 14990:

select pg_terminate_backend(14990);