2012-05-13 9 views
6

Czasami pracuję z Codeigniterem, a po zakończeniu pracy nad lokalną witryną muszę przeprowadzić migrację plików na serwer. Wszystkie pliki w folderze /config/ należy zmienić, aby pasowały do ​​ustawień serwera. To nie jest w porządku, aby dokonać pełnego zatwierdzenia dla tych zmian, czy po prostu sprawię, że Git całkowicie zignoruje te pliki, czy jest jakiś sposób śledzenia tych zmian i zastosowania ich z Git we właściwym momencie?Jaki jest właściwy sposób na zachowanie "wersji dla serwera" - z tylko zmianami plików konfiguracyjnych w Git?

+0

Można chyba napisać after_deploy hak git że to zrobi? – lenswipe

Odpowiedz

7

Można zachować wersjami:

  • dwa „pliki wartość Config”, z odpowiednimi wartościami dla każdego środowiska
  • plik konfiguracyjny szablonu, o wartości zastępczego w nim (na przykład @@[email protected]@)
  • skrypt, który może wygenerować rzeczywisty plik konfiguracyjny w zależności od bieżącego środowiska
  • a content filter driver, który przy kasie uruchomi skrypt w celu wygenerowania platformy plik konfiguracyjny ht.

content filter driver

Uwaga: zakłada, że ​​plik konfiguracyjny szablon ma rozpoznawalną zawartość (filtr nie ma nazwy lub ścieżkę do pliku). Zobacz "Git equivalent of subversion's $URL$ keyword expansion", aby uzyskać więcej informacji na temat ograniczenia sterownika filtra treści git).

1

To zależy od Twoich potrzeb. W mojej firmie stosujemy inne podejście. stworzyliśmy kilka środowisk (gdzie gwiazdka to wewnętrzna nazwa projektu):..

  • devel - strona działa w domenie ** local.com *
  • testu - bieg witryny w domenie test *. company.com
  • produkcja beta * - - company.com
  • beta.. co drugi domeny.

Na podstawie nazwy domeny automatycznie przełączamy konfiguracje. plik Basicly config wygląda następująco:

<?php 
return array(
    '_env' => array(
    'devel' => array(
     // config for devel 
    ), 
    'production' => array(
     // config for production 
    ) 
) 
); 
?> 

niektórych ram (AFAIR Zend) ustawić nazwę środowiska Virtual Host config (lub .htaccess). Powinieneś spojrzeć na: zend framework auto switch production staging test .. etc

Czy spojrzałeś na dokumentację CI? Jest o tym section.

0

Utwórz dwa foldery w folderze config. Jedna nazywa się development, a druga to production. Teraz skopiuj plik config.php, database.php itp. Do każdego z tych folderów. Teraz, gdy jesteś na serwerze produkcyjnym, CodeIgniter najpierw sprawdzi folder production dla plików. Jeśli go nie ma, używa domyślnego pliku w folderze config. A jeśli jesteś w środowisku programistycznym, CodeIgniter najpierw sprawdzi folder development.

Jeśli chcesz zachować plik konfiguracyjny identyczny ze środowiskiem produkcyjnym i programistycznym, pozostaw go w folderze config.

Jeśli chcesz ustawić środowisko następnie dodaj następujący kod w pliku .htaccess:

#This code for Development Environment 
SetEnv CI_ENV development 

i

#This code for Production Environment 
SetEnv CI_ENV production 
Powiązane problemy