All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 9m20s
28 lines
1.2 KiB
Go
28 lines
1.2 KiB
Go
package testutil
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
// CreateTemporaryOutboxTable 创建事务内自动回滚的公共 Outbox 测试表。
|
|
func CreateTemporaryOutboxTable(t *testing.T, db *gorm.DB) {
|
|
t.Helper()
|
|
if err := db.Exec(`CREATE TEMP TABLE tb_outbox_event (
|
|
id bigserial PRIMARY KEY, event_id varchar(64) NOT NULL UNIQUE,
|
|
event_type varchar(150) NOT NULL, payload_version integer NOT NULL,
|
|
aggregate_type varchar(100) NOT NULL, aggregate_id varchar(100) NOT NULL,
|
|
resource_type varchar(100) NOT NULL, resource_id varchar(100) NOT NULL,
|
|
business_key varchar(150) NOT NULL DEFAULT '', request_id varchar(100) NOT NULL DEFAULT '',
|
|
correlation_id varchar(100) NOT NULL DEFAULT '', payload jsonb NOT NULL,
|
|
status integer NOT NULL, retry_count integer NOT NULL DEFAULT 0,
|
|
max_retries integer NOT NULL, next_attempt_at timestamptz NOT NULL,
|
|
lease_owner varchar(100), lease_expires_at timestamptz,
|
|
last_error_code varchar(100) NOT NULL DEFAULT '', last_error_summary varchar(500) NOT NULL DEFAULT '',
|
|
delivered_at timestamptz, created_at timestamptz NOT NULL DEFAULT NOW(), updated_at timestamptz NOT NULL DEFAULT NOW()
|
|
) ON COMMIT DROP`).Error; err != nil {
|
|
t.Fatalf("创建 Outbox 测试表失败:%v", err)
|
|
}
|
|
}
|