跳到主要内容

create_tables_statements()

function create_tables_statements<T>(
adapter,
EntityTypes,
entities?
): Promise<string[]>;

Defined in: packages/rxdb-adapter-pglite/src/table/create_tables_sql.ts:75

生成多张表的创建语句列表

按阶段排序,而不是按传入顺序边建表边建 trigger:

  1. CREATE SCHEMA(所有非 public namespace)
  2. 全部 CREATE TABLE 与 ADD COLUMN
  3. 全部外键约束与索引(必须等所有表建完)
  4. 全部触发器(仅对 log !== false 的实体)
  5. 初始数据 INSERT(可选)

交错生成时,外键会指向还没建的表、trigger 会引用还没建的 change 表, 干净库上依次报 schema … does not exist / relation … does not exist(PGL-014)。

Type Parameters​

Type Parameter
T extends EntityType

Parameters​

ParameterTypeDescription
adapterRxDBAdapterPGlitePGlite 适配器实例
EntityTypesT[]实体类型数组
entities?InstanceType<T>[]可选的初始数据实体数组

Returns​

Promise<string[]>

逐条可执行的 SQL 语句数组

Example​

for (const statement of await create_tables_statements(adapter, [User, Todo])) {
await adapter.internalQuery(statement);
}