Postgres 事件存储适应器
德里·卡斯托尔 EventStorageAdapter 使用 Postgres 数据库执行.
* 安装
# npm
npm install @castore/event-storage-adapter-postgres
# yarn
yarn add @castore/event-storage-adapter-postgres
这个软件包 @castore/core 作为对等依赖,您也必须安装:
# npm
npm install @castore/core
# yarn
yarn add @castore/core
使用量
import { PostgresEventStorageAdapter } from '@castore/event-storage-adapter-postgres';
const pokemonsEventStorageAdapter = new PostgresEventStorageAdapter({
// 👇 You can specify a connection string for your Postgres database
connectionString: 'postgresql://postgres:postgres@localhost:5432/postgres',
});
const pokemonsEventStore = new EventStore({
...
eventStorageAdapter: pokemonsEventStorageAdapter,
});
如何运作
这个适配器只是让 Postgres 数据库中的事件持续存在.
数据库表结构和自定义
以下概述适配器使用的基本表格结构和创建事件表时可用的定制选项.
表格结构概览
| 栏 | 数据类型 | 默认自定义 | 说明 |
|---|---|---|---|
| 编号 | BigSerial(或如果通过 idType 指定为Serial) | 大国 | 主密钥; 自动递增标识符 |
| 聚合名称 | VARCHAR( 总体名称Length) | 瓦努阿图(32) | 综合名称( 指定事件存储) |
| 总计( d) | UUID, ULID, 或 VARCHAR( 如果类型是 VARCHAR , 则总长) | 用户名 | 集合的标识符; 如果使用 VARCHAR, 必须指定长度 |
| 版本 | BigINT(或INTEGER,如果通过版本Type指定的话) | 大键 | 事件版本编号 |
| 类型 | VARCHAR( Length 类型) | 瓦努阿图(64) | 事件类型名称 |
| 数据 | 贾森布 | 无 | 储存在JSONB的事件有效载荷 |
| 元数据 | 贾森布 | 无 | 其他事件元数据 |
| 时间戳 | TimestAMPTZ 与防守当前 TIMESTAMP(3) | 现值 TIMESTAMP(3) | 事件的时间戳( 插入时自动设定) |
| 团结 | (汇总 名称,汇总 id,版本) | 无 | 强制执行聚合 名称、集合 id和版本的组合是独一无二的 |
创建 EventTable 中的自定义选项
| 选项 | 默认值 | 允许值 / 描述 |
|---|---|---|
| 表格Name | 事件 | 要创建的表格名称 |
| 代码 | 大国 | Id列的数据库类型; 允许值: BIGSERIAL 或 SERIAL |
| 总和Name Length | 第32条 | 集合的长度 名称 VARCHAR 列 |
| 总计 | {类型:"UUID"} | 定义聚合 id列类型;可以是UUID,ULID,也可以是VARCHAR(如果使用VARCHAR,必须提供长度) |
| 版本类型 | 大键 | 版本列的数据库类型; 允许值: BIGINT 或 INTEGER |
| 类型Length | 64国道 | VARCHAR 类型列的长度 |
此外,索引在croup name,版本上创建,综合索引在(croupgate name,croup id)上创建,以提高查询性能.