Pracuję nad projektem, który musi używać hstore
na wielu schematach. Schemat "publiczny", w którym instalowano rozszerzenie hstore
, nie jest dostępny wszędzie, ponieważ mój zakres nie jest "publiczny". W niektórych tryoutach utworzyłem rozszerzenie na schemacie o nazwie "hstore" i użyłem schematu na każdej dostępnej osłonie (ścieżce wyszukiwania).Najlepszy sposób na zainstalowanie hstore na wielu schematach w bazie danych Postgres?
Na tej podstawie mam kilka pytań:
Czy to jest ok aby utworzyć schemat tylko do rozszerzenia? A może lepiej utworzyć rozszerzenie na każdym schemacie (np.
customer_1
,customer_2
itd.)?Czy utworzenie rozszerzenia w oddzielnym schemacie wpływa na miejsce przechowywania danych? Używam wielu schematów, aby ułatwić tworzenie kopii zapasowych/przywracania i naprawdę nie chcę, aby pg przechowywał wszystkie moje dane
hstore
w ukrytej tabeli (na przykładpg_large_objects
dla obiektów BLOB) w jednym schemacie.
W 'rozszerzeń 'schemat musi być dodany do search_path, prawda? – Qcom
@Qcom: Prawidłowo. Również sekwencja schematów w ścieżce wyszukiwania jest istotna. * Lub * musisz do schematu - zakwalifikować wszystkie obiekty, które chcesz odwołać - w tym operatorów! Szczegóły: http://stackoverflow.com/questions/22975599/how-to-use-operator--the-extension-pg-trgm/22975642#22975642 –
Czy istnieją jakieś oczywiste zalety poza jasnością w instalacji rozszerzeń w dedykowanym schematu, a nie publicznego? – Qcom