-- ============================================================================= -- 创建测试数据库 test_etl_feiqiu -- 结构与生产 etl_feiqiu 完全一致(六层 schema:meta/ods/dwd/core/dws/app) -- 用途:开发和测试环境,避免影响生产数据 -- ============================================================================= -- 1. 创建数据库(需要以超级用户或有 CREATEDB 权限的角色执行) -- 如果数据库已存在,先手动 DROP 或跳过此步 CREATE DATABASE test_etl_feiqiu WITH ENCODING = 'UTF8' LC_COLLATE = 'zh_CN.UTF-8' LC_CTYPE = 'zh_CN.UTF-8' TEMPLATE = template0; -- 2. 连接到 test_etl_feiqiu 后,依次执行以下脚本初始化六层 schema -- 每个脚本包含 CREATE SCHEMA IF NOT EXISTS + 该层所有表定义 -- -- 在 psql 中执行: -- \c test_etl_feiqiu -- \i ../schemas/meta.sql -- \i ../schemas/ods.sql -- \i ../schemas/dwd.sql -- \i ../schemas/core.sql -- \i ../schemas/dws.sql -- \i ../schemas/app.sql -- -- 3. 如需加载种子数据,执行 seeds 目录下的脚本: -- \i ../seeds/*.sql -- 注意事项: -- - 生产 schema 变更后,需同步在测试库执行相同的迁移脚本(Requirements 9.4) -- - 迁移脚本位于 ../migrations/ 目录,按日期前缀顺序执行 -- - app schema 的 RLS 策略在测试库中同样生效,测试时需设置 app.current_site_id