open 命令打開的表需要係統事先存在另外一些基本的表,在這些表存在並擁有數據之前,不能使用 open 命令。這些最低限度必須存在的表是 pg_class, pg_attribute, pg_proc, pg_type 。為了允許這些表自己被填充,帶 bootstrap 選項的 create 隱含打開所創建的表用於插入數據。
同樣,declare index 和 declare toast 命令也不能在它們所需要係統表創建並填充之前使用。
因此,postgres.bki 文件的結構必須是這樣的:
create bootstrap 其中一個關鍵表
insert 數據,這些數據至少描述這些關鍵表本身
close
重複創建和填充其它關鍵表
create(不帶 bootstrap)一個非關鍵表
open
insert 需要的數據
close
重複創建其它非關鍵表
定義索引
build indices
當然,肯定還有其它未記錄文檔的順序依賴關係。