Tworzenie stron zdalnie czy lokalnie, a może pół na pół?

No właśnie… najpierw lokalnie i wysyłać na serwer całość łącznie z MySQL czy jednak przeciwnie - wszystko od początku zdalnie? Czy może pół na pół i np. MySQL który się rozrasta zdalnie, a szkielet strony tzn. cała reszta najpierw lokalnie, potem wysyłać? No i jak wtedy z testowaniem MySQL lokalnie - import i eksport ze zmianą parametrów konfiguracyjnych raz na jakiś czas? Czy może nie testować MySQL lokalnie tylko zdalnie poprzez jakiś manewr? Oczywiście zakładając, że nie chcę, aby robocze efekty widziała reszta.

Czyli że co chcesz uzyskać? Strony tworzy się albo lokalnie (u siebie na serwerze np. XAMPP) bądź zdalnie (co jest utrudnieniem) u zewnętrznych dostawców rozwiązań serwerowych.

Nie wiem, jakie dane będziesz miał w bazie MySQL, ale dobrą praktyką jest testowanie lokalne, a publicznie trzymanie/udostępnianie tylko przetestowanej wersji “produkcyjnej”.

Poza tym zawsze możesz wgrać nową “wersję” bazy MySQL na serwer publiczny - no chyba, że użytkownicy będą w niej na bieżąco robić zmiany?

Czyli że MySQL też powinienem mieć lokalnie, a następnie eksportować na serwer w razie wyższej konieczności? Chodzi mi także o sytuacje w których baza danych jest nieźle rozrośnięta z różnych powodów albo po prostu jak już napisano - często zmieniana np. powiększana o nowe dane przez innych. W takich sytuacjach upload wersji finalnej roboczej jako produkcyjnej wydaje mi się mało komfortowy. Zauważyłem jednak, że dosyć wygodne póki co, jest dla mnie pracowanie “pół na pół” czyli wszystko lokalnie oprócz bazy danych. Bazą wygodnie sobie zarządzam poprzez phpMyAdmin na serwerze, natomiast resztę tworzę i modyfikuję lokalnie w Netbeansie. Jest jednak problem z testowaniem MySQL tak, aby nie widziała go publika i choć nie jest mi to teraz jakoś potrzebne to w niedalekiej przyszłości na pewno będzie pożądane. Wpadłem na pomysł aby co jakiś dłuższy czas ściągać bazę z serwera na dysk i w razie potrzeby wszystko testować lokalnie bez wyjątku lub może jakiś inny manewr? Czy może jednak zmienić podejście i kompletnie wszystko tworzyć i modyfikować lokalnie łącznie z MySQL, a następnie wysyłać na serwer gdy ukończone? Jeżeli tak to jakie mogę napotkać problemy przy importowaniu i eksportowaniu? Póki co serwery na których projekty lądują są tanimi hostingami wirtualnymi, póki co…

 

Dzięki za odpowiedź :slight_smile:

tworzenie stron internetowych www.wujitsu.pl webmastering optymalizacja

Zawsze możesz tworzyć wszystko lokalnie, pchając zmiany do repozytorium (włącznie z wysyłką dumpa bazy), a następnie przygotować automatyczny deploy + uprzedni backup tego co już istnieje na serwerze - w przykładowych odstępach 24h. Pliki użytkowników zostają, ty aktualizujesz jedynie skrypty, a zmiany w bazie robisz na zasadzie update’a, nie inserta.

Jak już wspomniałem, najlepiej mieć bazę z danymi produkcyjnymi w internecie, bo na niej pracują ludzie i ją modyfikują. A Ty możesz co jakiś czas sobie ją kopiować do bazy lokalnej i na niej testować swoje rozwiązania (pamiętając, żeby ustawić w aplikacji testowej korzystanie z lokalnej a nie produkcyjnej bazy) - przecież  nie potrzebujesz do testów aktualnej bazy, poza tym zmiany zrobione podczas testów lepiej by nie były przenoszone do bazy produkcyjnej.

 

Czyli (podsumowując):

  1. Na produkcji (czyli w internecie) trzymasz aktualną bazę danych MySQL oraz sprawdzony/przetestowany kod aplikacji, który pracuje na tej bazie.

  2. Lokalnie masz kopię (mniej lub bardziej aktualną) bazy danych MySQL plus testową wersję aplikacji, która działa na tej lokalnej kopii bazy i tu nanosisz zmiany i je sprawdzasz.

  3. Po testach, jak chcesz uaktualnić aplikację, zmieniasz w niej bazę, z jakiej korzysta (z lokalnej na produkcyjną), sprawdzasz że to działa i wrzucasz do internetu.

@Pablo_Wawa , taka odpowiedź pokrywa się z moim podejściem tzn. “pół na pół” i cieszę się, że napisałeś rozwiązanie, które jest z nim zgodne - bo takie wzięcie sprawy wydawało mi się dosyć logiczne. Dzięki wszystkim za odpowiedzi!