La commande open ne peut pas être utilisée avant que les tables qu'elle utilise n'existent et n'aient des entrées pour la table à ouvrir. (Ces tables minimales sont pg_class, pg_attribute, pg_proc et pg_type.) Pour permettre le remplissage de ces tables elles-mêmes, create utilisé avec l'option bootstrap ouvre implicitement la table créée pour l'insertion de données.
De la même façon, les commandes declare index et declare toast ne peuvent pas être utilisées tant que les catalogues systèmes dont elles ont besoin n'ont pas été créés et remplis.
Du coup, la structure du fichier postgres.bki doit être :
create bootstrap une des tables critiques
insert les données décrivant au moins les tables critiques
close
Répéter pour les autres tables critiques.
create (sans bootstrap) une table non critique
open
insert les données souhaitées
close
Répéter pour les autres tables non critiques.
Définir les index et les tables TOAST.
build indices
Il existe, sans doute, d'autres dépendances d'ordre non documentées.