The open command cannot be used until the tables it uses
exist and have entries for the table that is to be opened.
(These minimum tables are pg_class,
pg_attribute, pg_proc, and
pg_type.) To allow those tables themselves to be filled,
create with the bootstrap option implicitly opens
the created table for data insertion.
Thus, the structure of the postgres.bki file has to
be:
create bootstrap one of the critical tables
insert data describing at least the critical tables
close
Repeat for the other critical tables.
create (without bootstrap) a noncritical table
open
insert desired data
close
Repeat for the other noncritical tables.
Define indexes.
build indices
There are doubtless other, undocumented ordering dependencies.