View source
From RCUB
for
Migracija sa MySQL-a na PostgreSQL
Jump to:
navigation
,
search
PostgreSQL se čita kao "Postgres Kju El" ili samo "Postgres". == JDBC parametri konekcije za PostgreSQL == JDBC connection string je oblika: jdbc:postgresql://netis-test.rcub.bg.ac.yu/e_university_v5 Default port je 5432, a drajver je: org.postgresql.Driver. == Promene na aplikaciji == U slučaju da se koristi JPA za apstrakciju pristupa bazi, i da se koriste samo JPQL upiti, nikakve promene na aplikaciji nisu potrebne. Jedino je potrebno promeniti parametre konekcije. U slucaju da se koriste Native upiti pod JPA-om, ili da se koristi JDBC, potrebno je nekoliko zahvata na MySQL upitima (npr. skriptovi za kreiranje i insertovanje podataka) da bi bili kompatibilni sa Postgresom. Sve promene koje treba obaviti na njima su lepo dokumentovane na: http://www.markslade.name/Articles.html?a=9 Pored navedenih, naišli smo na još dve stvari: # U MySQL-u u insert statmentu za BOOLEAN polje je dozvoljeno staviti vrednost 1, u Postgresu mora '1' (pod apostrofima) # LONGBLOB u MySQL-u se escape-uje heksadekadno, a BYTEA u Postgresu oktalno Pored toga, vredi pomenuti da je UTF-8 podržan i u Postgresu, kao i srpsko sortianje (zavisi od podešavanja locale-a prilikom kreiranja baze). ==Performanse== Merenje pod koliko-toliko ravnopravnim uslovima (isti server, isti skup podataka, isti upit, deset ponavljanja) je pokazalo +30% u brzini u korist Postgresa. ==Hijerarhija== Obratite takođe pažnju, hijerarhija u Postgresu je baza, šema, tabela. JDBC string za konekciju prima kao parametar samo ime baze, a ne i šemu. Tako da je verovatno najlakše kreirati posebne baze i koristiti njihove default "public" šeme. ==PSQL komande== psql komande koje vam mogu biti od interesa: \l - listanje baza podataka \c - izbor aktivne baze podataka \dn - listanje svih sema u izabranoj bazi \du - listanje svih korisnika CREATE USER username PASSWORD 'l0zinka'; -- kreiranje korisnika GRANT ALL ON SCHEMA public TO username; -- dodeljivanje privilegija ==Konfigurisanje servera== Da bi ste omogućili pristup serveru preko JDBC-ja odnosno TCP/IP-ja, potrebno je da u data/postgresql.conf navedete: listen_addresses = '*' # what IP address(es) to listen on; port = 5432 # (change requires restart) i da u data/pg_hba.conf dodate: # TYPE DATABASE USER CIDR-ADDRESS METHOD host mydb ognjen 147.91.4.66/32 md5
Return to
Migracija sa MySQL-a na PostgreSQL
.
Personal tools
Log in
Namespaces
Page
Discussion
Variants
Views
Read
View source
View history
Actions
Search
Navigation
Main page
Community portal
Current events
Recent changes
Random page
Help
Toolbox
What links here
Related changes
Special pages