Verzování SQL rubrika: Nástroje: Verzování

2 marek.krivan
položil/-a 29.12.2016

Ahoj,
chtěl bych se zeptat, zda znáte či používáte nástroj pro verzování SQL.
Jde mi o to, že když udělám změnu v DB na vývoji, jak tuto změnu promítnou na produkci.
Nyní to řeším, takovým trapným způsobem a to, že přidám něco (sloupec, tabulka, index, atd...) a to SQL si uložím do txt souboru, a poté commitnu do gitu.

Jenže tohle je strašně závislé na lidském faktoru, zapomenu vložit SQL dotaz, jelikož mě něco vyruší (email, telefon, atd...) a chyba při přidání do produkce je na světě.

Děkuji

odkaz
1 Michael Remiš
odpověděl/-a 30.12.2016

Pouzivame http://www.liquibase.org/. Funguje trochu odlisne nez treba https://flywaydb.org/ nebo migrace v Doctrine. Je to napsane v Jave, existuje k tomu plugin pro maven ale pouzivame i CLI pro PHP projkety (kde neni maven).

Vyhodou je, ze je to multiplatformni (MySQL, Oracle DB, MSSQL, PostgreSQL) a to i ve forme zapisu - migrace pisete v XML/YAML/JSON a liquibase si sam podle cilove DB vytvori SQL (vyhoda pokud mate multiplatformni aplikaci). Navic funguje jak naprimo (liquibase se pripoji do db a provede zmeny) tak offline (liquibase jen vygeneruje SQL)

Zdrojaky pak jednoduse verzujeme spolu s aplikaci v Gitu.

Komentáře

  • Anonym : https://flywaydb.org/ vypadá dobře! 13.1.2017
  • peter.jurkovic : Vo firme používame flyway, funguje výborne, je ho možné integrovať ako aj časť buildu. Odporúčam. 13.1.2017
  • pavsyk : Flyway se mi také líbí a nějakou dobu jsem ho používal. Pozor ale, pokud pracujete multiplatformně (tj. někdo ve Win, jiný na Macu nebo Linuxu). Je potřeba v gitu nastavit, že se u skriptů pro Flyway nesmějí měnit konce řádků dle platformy. Jinak se spočítají jiné hashe a Flyway si myslí, že se skript změnil a docela ho to rozhodí. Tedy takhle se alespoň chovaly starší verze (cca rok zpátky). Novější verze jsem zatím nezkoušel. 13.1.2017

Pro zobrazení všech 8 odpovědí se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.