feat(M02-A): 建立多小程序租户配置模型
This commit is contained in:
@@ -15,6 +15,9 @@ const legacyFixtureSql = read('database/fixtures/2026061801_m01b_legacy_schema.s
|
||||
const asyncUpSql = read('database/migrations/2026061802_m01c_async_tasks.up.sql');
|
||||
const asyncDownSql = read('database/migrations/2026061802_m01c_async_tasks.down.sql');
|
||||
const asyncVerifySql = read('database/migrations/2026061802_m01c_async_tasks.verify.sql');
|
||||
const tenantAppsUpSql = read('database/migrations/2026061803_m02a_tenant_apps.up.sql');
|
||||
const tenantAppsDownSql = read('database/migrations/2026061803_m02a_tenant_apps.down.sql');
|
||||
const tenantAppsVerifySql = read('database/migrations/2026061803_m02a_tenant_apps.verify.sql');
|
||||
|
||||
const coreTables = [
|
||||
'qipai_schema_migrations',
|
||||
@@ -86,4 +89,14 @@ assert.match(asyncUpSql, /UNIQUE KEY uq_qipai_async_tasks_idempotency/);
|
||||
assert.match(asyncUpSql, /lease_expires_at DATETIME\(3\)/);
|
||||
assert.match(asyncUpSql, /COMPENSATION_REQUIRED|status VARCHAR/);
|
||||
|
||||
console.log('PASS: M01-B/M01-C migration contracts are present.');
|
||||
for (const table of ['qipai_platform_apps', 'qipai_tenant_apps', 'qipai_tenant_configs']) {
|
||||
assert.match(tenantAppsUpSql, new RegExp(`CREATE TABLE IF NOT EXISTS ${table}\\b`));
|
||||
assert.match(tenantAppsDownSql, new RegExp(`DROP TABLE IF EXISTS ${table}\\b`));
|
||||
assert.match(tenantAppsVerifySql, new RegExp(`'${table}'`));
|
||||
}
|
||||
assert.match(tenantAppsUpSql, /UNIQUE KEY uq_qipai_tenant_apps_tenant_app \(tenant_id, platform_app_id\)/);
|
||||
assert.match(tenantAppsUpSql, /UNIQUE KEY uq_qipai_tenant_configs_tenant_app \(tenant_id, platform_app_id\)/);
|
||||
assert.match(tenantAppsUpSql, /brand_name VARCHAR/);
|
||||
assert.match(tenantAppsUpSql, /theme_color VARCHAR/);
|
||||
|
||||
console.log('PASS: M01-B through M02-A migration contracts are present.');
|
||||
|
||||
Reference in New Issue
Block a user