Source control za Oracle DB

poruka: 12
|
čitano: 2.911
|
moderatori: Danny_HR, Lazarus Long, XXX-Man
1
+/- sve poruke
ravni prikaz
starije poruke gore
11 godina
neaktivan
offline
Source control za Oracle DB

Pozdrav,

 

vjerojatno su se svi koji se bave PLSQL razvojem susreli s problemom source controla u bazi podataka. U nekim firmama se source control uopće ne koristi pa si developeri redovito međusobno gaze verzije. Gubi se vrijeme na ručno uspoređivanje paketa (KDiff, WinMerge) itd.

 

Mene zanima na koji način vi koristite u svojim firmama source control, koji alat.

Čitao sam malo o produktu firme Red Gate (link). Ima li itko iskustva s tim komadom softvera? Uočene prednosti/mane?

 

Trenutno u firmi u kojoj radim koriste TortoiseSVN.

 

Ima svojih prednost i mana.

 

Ovakav im je modus operandi.

Najprije developer A koji radi na paketu X zaključa taj paket na svim okolinama (3 razvojne okoline dev, test, prod).

(mana: ako developer B drži lock, developer A mora ili čekati da dev B završi ili dogovoriti se na prepuštanje locka itd. Nema branchanja - postoji mogućnost naravno, ali je ne koriste).

 

Nakon locka, developer A može početi razvijati. Očekivano mjesto gdje developer razvija je IDE (SQL Developer ili PLSQL Developer). Nakon toga developer treba iskopirati svoje promjene u source control file (zapravo u tekstualnu datoteku). Nema direktno iz baze u source control. Napomena. Developer nema svoju razvojnu okolinu, nego je sve shared.

Tu fali ta dev okolina koju bi trebao svaki developer imati. Ali onda dolazimo do problema s podatcima i syncanjem istih (potrebno je imati podatke za kvalitetan tuning i optimizaciju).

 

I sve to ponoviti za svaku od 3 okoline.

Nakon što razvoj ode na produkciju, developer miče lock s paketa i onda može netko drugi raditi razvoj.

 

S grananjem i merganjem se omogućava da može više developer radit na istom paketu, ali zasad im je način rada ovakav.

 

Na "mojoj" bazi radi otprilike 50 developera.

Verzioniraju i fmb i xls datoteke.

 

Ima li boljih rješenja od ovog?

 

Hvala unaprijed na svim komentarima :)

 

Poruka je uređivana zadnji put pon 23.10.2017 15:03 (Jopa).
 
0 0 hvala 0
11 godina
online
Source control za Oracle DB

Nejasna mi je situacija da unatoc potrebi da svatko ima svoju bazu - to ipak nije tako?

Freak Show Inc.
Moj PC  
2 0 hvala 0
11 godina
neaktivan
offline
Source control za Oracle DB

Zato i istražujem malo koje su sve mogućnosti što se tiče source controla za DB.

 

Problem koji ja vidim kad svatko ima svoju okolinu su podatci (odnosno nedostatak istih).

Možeš imati svoj razvojni kod, ali ti fale podatci da bi mogao adekvatno testirati na local bazi.

 

Zato me i zanimaju rješenja koja imate u svojim firmama tako da možemo usporediti mane i prednosti.

Svjestan sam da postoji Gugl, ali eto htio sam i ovdje pokrenuti temu :)

 

P.S. Ne odlučujem ja o načinu kako će firma organizirati source control, ali istražujem druge mogućnosti.

Poruka je uređivana zadnji put uto 31.10.2017 17:16 (Jopa).
 
0 0 hvala 0
11 godina
online
Source control za Oracle DB

Ne razumijem ovo lockanje okolina? Zasto se razoj ne radi iskljucivo na DEV pa onda merge dalje?

Freak Show Inc.
Moj PC  
0 0 hvala 0
11 godina
neaktivan
offline
Source control za Oracle DB

Nema merganja u smislu da 2+ developera paralelno razvijaju na istom paketu, pa onda ubacuju svoje promjene i mergaju u glavnu granu.

 

Ovdje se radi po sljedećem principu. Developer 1 locka paket (to znači da nitko drugi ne može radit na tom paketu - odnosno ubacivat svoje promjene). Developer 2 može započeti svoj rad tek kad developer 1 završi.

Kad kažem završi, mislim kad razvoj od developera1 ode na produkciju (tu zna proći ohoho vremena).

 

Iz tog razloga kad developer 1 započne svoj razvoj, stavlja lock na paket (.bdy tekstualnu datoteku) u dev folderu, u test folderu, prod folderu.

 

Katastrofa za organizaciju/administraciju i totalno krivo korištenje source controla.

 

 

 
0 0 hvala 0
10 godina
online
Re: Source control za Oracle DB
Jopa kaže...

..

 

P.S. Ne odlučujem ja o načinu kako će firma organizirati source control, ali istražujem druge mogućnosti.

 -ha? Pa tko to odlučuje, direktor, čistačica?.. ili si ti mali od kopirke? Složi sys da radi ili to mora netko drugi.

- svn ima svoja pravila, lokalna baza ne mora ni po čemu biti drugačija od glavne (kad spominješ podatke)..

C64/TurboModul-OpenSourceProject.org.cn.部分作品为网上收集整理,供开源爱好者学习使用
11 godina
online
Source control za Oracle DB

Evo iz prakse primjer...

 

U prosloj firmi svaki developer je imao svoju bazu. Kljucno je bilo da objekt na kojem planiras raditi imas u zadnjoj verziji. Npr od par tisuca stored procedura bitna ti je samo ona na kojoj ces raditi. Nakon sto si napravio i lokalno testirao izmjene - dodajes u header procedure datum, svoje ime i opis izmjene. Skriptu saljes db timu koji skriptu koju si poslao usporedjuje sa zadnjom verzijom koju oni imaju. Ako zadnja izmjena koju oni imaju odgovara onoj koja prethodi tvojoj u skripti koju si poslao - sve OK. Ako ne odgovara - znaci da si radio na starijoj verziji objekta. Ista stvar je sa view-ovima, funkcijama, triggerima...

Za tablice se slala alter skripta sa datumom, imenom developera i opisom zasto je promjena potrebna. 

Ne znam da li je db tim imao kod sebe nekakav source control (vjerujem da jesu). 

Na moje uporno inzistiranje napokon su nakon par mjeseci od mog dolaska svako jutro na jedan od shareanih diskova stavljali skripte koje su postavljali u glavnu bazu (baza koja je uvijek bila u sync-u sa softverom i u kojoj su bile ugradjene sve odobrene promjene). Znaci nisi morao nista puno misliti - ujutro samo uzmes .sql fajl i odvrtis ga na svojoj bazi. Onda znas da si na zadnjoj verziji.

Podaci su uvjetno receno nebitni.

Freak Show Inc.
Moj PC  
1 0 hvala 0
10 godina
online
Re: Source control za Oracle DB
Friday kaže...

.. ujutro samo uzmes .sql fajl i odvrtis ga na svojoj bazi. Onda znas da si na zadnjoj verziji.

Podaci su uvjetno receno nebitni.

 -ili se po želji spojiš vpnom.. bez fizićkih ograničenja, radiš od kud želiš ako imaš 'the net', dok versioning služi praćenju verzija i rollbacku ako zatreba.

C64/TurboModul-OpenSourceProject.org.cn.部分作品为网上收集整理,供开源爱好者学习使用
11 godina
neaktivan
offline
Source control za Oracle DB

@Friday. Sličan primjer koji si opisao sam imao u prošloj firmi. U timu svatko je imao svoju shemu, baza instalirana na serveru, pushali svako svoje promjene na SVN. Skriptom updejdali svoju shemu s novim stvarima. Milina.

Jedini nedostatak je taj da na svojoj shemi nije moguće istestirati performanse (karikiram: performanse joina s trilijun tablica). Te stvari su se mogle testirat samo pravim okolinama koje su pune podataka.

Možeš na dev okolinu, ali je tu većinom kaos. (stalno moraš paziti da li imaš zadnju verziju)

Ne možeš gurat na test okolinu jer bi ona trebala biti stabilna (pushanje novih stvari ide prije/poslije radnog vremena i u vrijeme ručka, to su neka standardna vremena).

 

Nemogu imat ovce i novce (nit to očekujem)

 

@ihush

ja sam samo mali developer, nisam release manager :)

Ovo kad kažeš "lokalna baza ne mora ni po čemu biti drugačija od glavne (kad spominješ podatke)". Misliš li na replikaciju podataka s recimo testne baze na lokalnu?

 

PS. Svjestan sam da sve ima i prednosti i mane. Ali tu ima pametnijih od mene, pa da vidim tuđa mišljenja, iskustva i preporuke. I hvala na tome.

 

 

Poruka je uređivana zadnji put uto 31.10.2017 23:29 (Jopa).
 
0 0 hvala 0
11 godina
online
Source control za Oracle DB

Vidi, sto se tice kolicine podataka - to je uvijek bitna tema. Ja sam znao sacekati cijeli dan i noc da bi se skinula live baza od korisnika. Dignem ju kod nas na serveru, sa redgate compare sredim strukturu da odgovara dev bazi i onda testiram. Strasno cesto na trenutnom poslu imam problem sa SQL kodom koji je napisan kao da u tablicama koje se koriste nikada nece biti vise od 100k redaka. Projekt krene live, sve radi super 2 mjeseca i onda odjednom pocnu sijevati ticketi na supportu - sporo ovo, sporo ono... Pa jebem vam mater i vama i usranom SQL kodu koji izgleda kao da je netko sjeo na tipkovnicu. Uvijek je nekako misljenje "ma ok, neka radi pa da mozemo ici live". I onda umjesto da potrosis sat vremena vise i napises SQL kako spada - support izgubi cijeli dan dok skontaju sta ne valja i kako da to promjene. S vremenom sam projekt managere uspio koliko-toliko unormaliti pa sad kad kazem da nesto profiliram/optimiziram uglavnom sutke to prihvate. Imam nekolicinu seniora u firmi koji pisu tako los SQL da bi ih najradije osamario mehanickom tipkovnicom. Junioru bih ocitao bukvicu zbog takvih sranja a to napisali ljudi koji se bave poslom vec 10-15 godina.

Nasi klijenti imaju par transakcijskih tablica (sa jako puno kolona) u kojima bude od milijun do 500 i vise milijuna recorda. Radi se o proizvodnji hrane i svaka sitnica je bitna (jer za svaku proizvedenu jedinicu moras imati kompletan traceability). Onda ti se dogodi da genijalac sjebe nekakav upit, pojave se neki divlji lockovi i transakcije otpadaju. Proizvodnja staje a svaka minuta par tisuca eura stete... Pa ti onda vidi jel se isplati uloziti nesto vremena da bi sustav funkcionirao kako spada.

Nije svaki sustav toliko kritican i nije sve greske lako uociti na prvu ali uvijek bi trebalo testirati sa nekom razumnom kolicinom podataka.

 

Do sada sam vec nekoliko puta ispravljao stvari tipa

Select

a,

b,

c,

(select top 1 nesto from nekadrugatablica where nestodrugo > nekatablica.a order by nekapizdarija),

d,

e

from nekatablica

 

Sad me znoj oblio od nervoze sto sam ovo uopce morao napisati...

Freak Show Inc.
Moj PC  
1 0 hvala 0
10 godina
online
Re: Source control za Oracle DB

-svaki posao je drugačiji-specifičan.. što reč, snalaženje u hodu. Jedino 'pravilo' za SVN koje je važno, KISS, što jednostavniji model, radi. Čim je nešto složenijeg, samo se nagomilavaju problemi, točno, ne idu i ovce i novce. Naravno, ako je izvedivo. Što veća firma, to je svaka promjena teža. Ako nešto nije u startu predviđeno.. ali to su samo floskule, jer neki fix-prijedlog, realno ne mogu dati. Za to moraš biti u konkretnoj situaciji.. sretno. :)

C64/TurboModul-OpenSourceProject.org.cn.部分作品为网上收集整理,供开源爱好者学习使用
11 godina
online
Source control za Oracle DB

Meni se u ovom konkretnom slucaju cini da se ne koriste sve blagodati source control sustava i da je alarmantno to da ako jedan dev radi na necemu da nitko drugi ne moze (a deploy traje i traje)

Freak Show Inc.
Moj PC  
2 0 hvala 0
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice