Rozdielne configu pre production a development

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
iNviNho
Člen | 352
+
0
-

Ahojte,

podľa dokumentácie skúšam rozdeliť v .bootstrap.php načítanie configu. Respektíve chcem, aby na produkčnom servery to načítalo iný konfig ako na vývojárskom.

<?php
$configurator->addConfig(__DIR__ . '/config/config.local.production.neon', $configurator::PRODUCTION);
$configurator->addConfig(__DIR__ . '/config/config.local.development.neon', $configurator::DEVELOPMENT);
$configurator->addConfig(__DIR__ . '/config/config.neon');
?>

Nefunguje to, lebo tam taká konstanta nie je. Viete mi poradiť ako v jednoduchosti takéto niečo docieliť?

Ďakujem :)

Pavel Kravčík
Člen | 1180
+
+1
-

Nejjednodušší je mít na produkci config.local.neon a u sebe taky config.local.neon. Akorát oba obsahují něco jiného. :)

CZechBoY
Člen | 3608
+
+1
-

Variant je několik. Otázkou je, jestli chceš mít na produkci údaje z developmentu (pokud ty servery jsou třeba veřejně přístupný tak to není dobrej nápad).

Já používám variantu jak píše @PavelKravčík, kdy existuje jen jeden konfigurák citlivých údajů na serveru. To, že se jmenujou jinak je už spíš jen kvůli gitu, aby se to furt nepřepisovalo. Do produkce jde potom config.local.prod.neon.

Pak je možnost rozdělit konfigurák pomocí $configurator->addConfig(‚config.local.neon‘, Configurator::Auto), kdy můžeš použít jakousi podmínku production a development.

main:
    database:
        ...
production < main:
    database:
        ...2
development <main:
    database:
        ...3

Potom můžeš použít podmíněný přidávání konfiguráku podle režimu:

if ($configurator->isDebugMode()) {
    $configurator->addConfig('config.local.dev.neon');
} else {
    $configurator->addConfig('config.local.prod.neon');
}

ale furt budeš mít dva soubory na produkci i developmentu. Nebo bys musel ošéfovat, aby na produkci byl jen produkční režim a jen produkční config.

Pavel Kravčík
Člen | 1180
+
0
-

CZechBoY napsal(a):

To, že se jmenujou jinak je už spíš jen kvůli gitu, aby se to furt nepřepisovalo. Do produkce jde potom config.local.prod.neon.

Ano, ve verzovacím systému můžeš mít několik souborů (prod, test, devel, prod_new_server) a při nasazování ho jen přejmenuješ.

iNviNho
Člen | 352
+
0
-

No ja som to robil tak, že som nakopiroval rozdielny cfg na produkčny server a potom som sa už config.local.neonu nedotykal, ale chcel by som updatovať celu zložku app a nemusel vôbec do nej liezť a vyberať subory :)

Dakujem, pomohli ste mi.

Oli
Člen | 1215
+
0
-

@iNviNho použij https://github.com/…p-deployment. Tam si vyignoruješ ktery soubory nechces. Takhle to resime my. Máme 3 konfigy (production, beta, local) a pro kazdy prostredi se nahraje jen to co tam ma byt.