Kirjoittaja Aihe: Git:n käyttö  (Luettu 2134 kertaa)

samnyrhi

  • Käyttäjä
  • Viestejä: 4
    • Profiili
Git:n käyttö
« : 02.11.12 - klo:09.37 »
Moi,

Olisi tarkoitus tehdä pieni projekti johon kuulu web sivusto sekä tietokanta. Apache, MySQL sekä Git asennettu ja todettu toimiviksi. Kehitys tapahtuu kahden kaverin toimesta eri koneilla, ei siis serverillä.

Miten sivusto kannattaa laittaa Gitiin, jotta muutokset olisi nähtävillä kun committi pushataan projektiin? Tällä hetkellä minulla on serverillä käyttäjä, joka bash skriptillä "pullaa" uusimmat (crontabissa 5 min välein) Gitistä ja rsyncillä kopioi ne web serverille oikeaan hakemistoon. Periaatteessa ihan toimiva tapa, mutta ei varmaan se "oikea".

Sitten se minulle haastavampi asia. Miten tuo tietokantapuoli kannattaisi tehdä Gitin kannalta? Tällä hetkellä en ole tehnyt mitään asian hyväksi, joten kaikki vinkit/ohjeet ovat tervetulleita. Tai onnistuuko tietokannan kehitys tällä tavalla ollenkaan?

matsukan

  • Käyttäjä
  • Viestejä: 2152
    • Profiili
Vs: Git:n käyttö
« Vastaus #1 : 02.11.12 - klo:12.32 »
"ja rsyncillä kopioi ne web serverille oikeaan hakemistoon. Periaatteessa ihan toimiva tapa, mutta ei varmaan se "oikea"."
Mikset suoraan pullaa kohdehakemistossa ? Miksi tämä välivaihe?

"Miten tuo tietokantapuoli kannattaisi tehdä Gitin kannalta? Tällä hetkellä en ole tehnyt mitään asian hyväksi, joten kaikki vinkit/ohjeet ovat tervetulleita. Tai onnistuuko tietokannan kehitys tällä tavalla ollenkaan?"

Mielestäni joidenkin tietokannat tukee export/import toimintoa eli tietokannan rakenne ja sisältö voidaan viedä tekstitiedostoon jonka kautta voidaan tehdä muutoksia ...

Mutta tietokannan sisältö on semmoinen joka täytetään kohteeseen suoraan  ja sitä ei mielestäni kannata laittaa minkään versiohallinnan sisälle.

Onko teidän projekti vielä kehitysvaiheessa ja ette ole vielä saavuttaneet tuotantovaihetta?


« Viimeksi muokattu: 02.11.12 - klo:12.37 kirjoittanut syrtek66 »
Pohjois-pohjanmaa
-- motto:  backupin tarve huomataan aina liian myöhään

samnyrhi

  • Käyttäjä
  • Viestejä: 4
    • Profiili
Vs: Git:n käyttö
« Vastaus #2 : 02.11.12 - klo:12.42 »

Onko teidän projekti vielä kehitysvaiheessa ja ette ole vielä saavuttaneet tuotantovaihetta?


Tämä on tämmöinen harjoitusprojekti vapaa-ajalla. Halutaan vain tehdä se "oikein" heti alusta asti niin on sitten myöhemmin helpompaa mikäli tästä jotain kaupallista on mahdollista saada aikaiseksi. Kiitoksia näistä vinkeistä.

Tomin

  • Palvelimen ylläpitäjä
  • Käyttäjä / moderaattori+
  • Viestejä: 11481
    • Profiili
    • Tomin kotisivut
Vs: Git:n käyttö
« Vastaus #3 : 02.11.12 - klo:14.33 »
Tietokannasta en osaa sanoa, mutta kavereiden kanssa olen käyttänyt Gitiä nettisivuihin seuraavan ohjeen mukaan: http://toroid.org/ams/git-website-howto
Eli käytännössä palvelimella on käyttäjän hakemistossa "bare" git repo, johon pushataan muutokset ja josta otetaan pull ennen hommien aloittamista. Yhteys on ssh. Palvelimen repossa on skriptit jotka tekee checkout:n public_html-hakemistoon ja siten päivittää sivut. Jos kaksi henkeä tekee yhtä aikaa muutoksia, git osaa pushatessa kertoilla että siellä on uudempia muokkauksia, sitten otetaan pull, korjataan tarpeelliset kohdat ja tehdään commit. Sitten yritetään uudestaan.

Tuo on toiminut ihan ok. Jos pitää lisätä uudelle koneelle kopio tuosta, niin clone toimii siihen hyvin (kuten pitääkin). Eli varmaankin tuohon systeemiisi riittäisi laittaa hooks-skripteihin (katso .git/hooks-hakemistosta) sopiva koodi, joka pistää tiedostot oikeaan paikkaan kun uusi commit saapuu. Omilla sivuillani olen tuota laajentanut vielä siten, että käytössä on kaksi branchiä, joista toinen on kehitysversiolle (jos haluat katso dev.tomin.dy.fi) ja sen mukaan mitä commitissa sanotaan tehdään checkout johonkin hakemistoon.

Nettisivut on tosiaan omaa koodia eli ei mitään sisällönhallintaa käytössä, mutta yksi pieni tietokanta löytyy myslistä ja sitä ei tuossa repossa ole, mutta eipä ole tarpeenkaan ollut.
« Viimeksi muokattu: 02.11.12 - klo:14.36 kirjoittanut Tomin »
Automaattinen allekirjoitus:
Lisäisitkö [RATKAISTU] ketjun ensimmäisen viestin aiheeseen ongelman ratkettua, kiitos.

Tommi S.

  • Käyttäjä
  • Viestejä: 240
    • Profiili
Vs: Git:n käyttö
« Vastaus #4 : 02.11.12 - klo:20.01 »
Sitten se minulle haastavampi asia. Miten tuo tietokantapuoli kannattaisi tehdä Gitin kannalta? Tällä hetkellä en ole tehnyt mitään asian hyväksi, joten kaikki vinkit/ohjeet ovat tervetulleita. Tai onnistuuko tietokannan kehitys tällä tavalla ollenkaan?

Tietokannan versioinnissa voi käyttää migraatioita, joka periaatteeltaan on että aina kun tietokannan rakennetta muutetaan niin kyseisen muutoksen tekevä SQL-lause tallennetaan git-repoon, ja kun uutta koodia pushataan palvelimelle niin nämä migraatio-komennot ajetaan siinä samassa skriptissä joka päivittää sovelluksen palvelimella.

Tunntetuin esimerkki tietokantamigraatioista on ehkä Ruby on Rails -websovelluskehykseen sisältyvä migraatio-ominaisuus, mutta on myös erilaisia kirjastoja ja palikoita eri kielille ja alustoille jotka osaavat hoitaa nuo migraatiot.