To prawie prawda.
Proszę nie użyj portu 5432 dla PostgreSQL. Wybierz port inny niż domyślny znacznie poza tym zakresem, na przykład 5599 lub coś takiego. Zmień port, modyfikując plik postgresql.conf i ustawiając port
dyrektywa. Przydatne może być dodanie include_dir = conf.d
lub podobny w głównym postgresql.conf
następnie utwórz datadir\conf.d\myapp.conf
z nadpisaniami konfiguracji.
Aby ustawić hasło dla initdb
bez monitu przekaż --pwfile=/path/to/file
opcja. Pierwsza linia zostanie odczytana jako hasło. Zobacz initdb.
Twój plan dezinstalacji jest rozsądny i poprawny.
Pomyśl jednak o ulepszeniach - nie zapchaj się w kąt. Będziesz chciał mieć możliwość zainstalowania 9.5 równolegle do 9.4 i pg_upgrade
, chyba że chcesz po prostu użyć zrzutu i przywrócenia.
Proponuję zainstalować binaria PostgreSQL w %PROGRAMFILES%\MyApp\PostgreSQL\9.4
. Prawdopodobnie powinieneś umieścić bazę danych w %PROGRAMDATA%\MyApp\PostgreSQL\9.4
zamiast %PROGRAMFILES%
Twojej aplikacji informator. (Instalator PostgreSQL powinien zrobić to samo; jego obecne zachowanie to historyczny artefakt, który należy naprawić).
Udokumentuj, że twoja aplikacja zawiera PostgreSQL, aby nikt go nie „sprzątał”, więc nie mamy kolejnej aplikacji wyrzucającej zdezorientowanych użytkowników na pgsql-general. Męczące staje się wyjaśnianie zły użytkownikom, że „my” nie zainstalowaliśmy PostgreSQL w ich systemie, nie możemy go usunąć, prawdopodobnie tam jest, ponieważ został zainstalowany przez coś, z czego korzystają, a jeśli go usuną, to przestanie działać . Podobnie męczące staje się wyjaśnianie użytkownikom, którzy właśnie zabili procesy PostgreSQL i usunęli katalog danych PostgreSQL, że nie możemy odzyskać ich bazy danych Poker Tracker (lub jakiejkolwiek innej), ponieważ właśnie ją usunęli...
Upewnij się, że Twoja aplikacja udostępnia funkcje wykonywania zrzutów i przywracania PostgreSQL dla użytkowników.
Instrukcja użytkownika musi jasno wyjaśniać, że muszą wykonać dodatkowe czynności związane z tworzeniem kopii zapasowych, aby chronić dane w Twojej aplikacji. Nie możesz po prostu użyć Kopii zapasowej systemu Windows, aby uzyskać niezawodną kopię zapasową PostgreSQL, ponieważ jest to wiele plików, które należy skopiować razem; skopiuje każdy plik OK, ale połączony wynik będzie bezużyteczny, chyba że PostgreSQL został zatrzymany przed wykonaniem kopii zapasowej. Aby wykonać kopię zapasową na żywo, musisz podjąć specjalne kroki - pg_start_backup()
, kopiuj, pg_stop_backup()
i zarchiwizuj dodatkowe segmenty WAL lub użyj pg_basebackup
.