git és eltérő környezetek
Érdekelne, hogy ti hogyan oldjátok meg gittel azt a problémát, hogy a helyi teszt rendszernél teljesen más config fájlokat kell használni, mint az éles szerveren. Én arra jutottam, hogy be kell tenni az összes config fájlt gitignore-ba, és kézzel feltenni őket éles szerverre. Arra jutottam még, hogyha minden ágon ott van az összes környezethez tartozó config, akkor a gitignore-ba csak az aktuális környezet nevét tartalmazó fájlt kellene betenni, így ha valami változik az éles szerver config-jában, akkor azt is automatizáltan fel lehetne tölteni. Lehet, hogy ennél van jobb megoldás is, csak én nem látom... :o
■
+1
-jóskának semmi köze hozzá, hogy mi a prod szerver adatbázis elérése
-engem nem érdekel ha jóska más néven akarja belőni az adatbázis szervert
-miért kellene minden futáskor ellenőriznie a script-nek, hogy milyen környezetben dolgozik éppen.
én legalábbis így gondolom
ha nem ilyen jellegű, vagy
master
develop
localdev
stb
branch vs. config?
És mi van akkor, ha fejlesztés közben készülnek új branch-ek, amiket többeknek le kellene szedniük? Akkor abból is csinálnak egy új ágat?
Én azt a roppant egyszerű megoldást használom, hogy ha kényes a jelszó, akkor kihagyom, ha nem, akkor ott van mindenkinek a configja és azt a server name alapján választja ki a program.
Ez tetszik, nem gondoltam rá,
Ezt nem igazán értem.
Nem próbáltam még, de a
Ez a twelve factor nem
Azon viszont érdemes elgondolkodni, hogy kiemelem külön repo-ba a config-ot, és úgy nem interferálnak a benne lévő változások a tényleges fejlesztéssel. Sőt, még külön repo-t se muszáj használni ehhez, elég a környezeti ágat külön feltenni egy másik mappába a szerverre, amire maga az alkalmazás tud hivatkozni. Nyilván ilyenkor a környezeti ág csak a config mappát használná...
Közben megnéztem, hogy php-ből és htaccess-ből is be tudom állítani, szóval valszeg vagy a domain névhez fogom igazítani a config-ot, vagy az env-ben beállított egy változóhoz. Nem szeretnék mindent az env-ben beállítani, mert a mostani rendszer még elég zavaros, aztán ez a megoldás jár a legkevesebb változtatással... Később majd még refaktorálom az egészet, aztán akkor meglátom, hogy mi legyen... Egyelőre ez is menni fog automatikusan, mert itthon web.config van, a szerveren meg .htaccess, szóval nem akad majd össze a kettő.
Bár a SERVER_NAME is jól
Beállítása .htaccess-el:
Ehhez URL Rewrite modul szükséges az IIS-hez. Először a view server variables-nél hozzá kell adni az engedélyezett változók köréhez, utána az egyes oldalaknál a rule-oknál lehet beállítani, vagy magában a web.config fájlban 1-1 rule alatt:
Mi a konfigolást úgy oldjuk
Tehát egyrészt nem kell kézzel deployolni, és csak egyedül azt a néhány plusz dolgot kell (nagyritkán!) karbantartani, amit amúgy is kézzel csinálna az ember. Ennél jobb megoldást nem nagyon tudok elképzelni.
Persze, ez alapból jó is,