feat(M06-C): 完成设备协议适配与消息幂等
This commit is contained in:
@@ -66,6 +66,9 @@ const profitSharingVerifySql = read('database/migrations/2026062218_m05d_profit_
|
||||
const deviceTopologyUpSql = read('database/migrations/2026062219_m06b_device_topology.up.sql');
|
||||
const deviceTopologyDownSql = read('database/migrations/2026062219_m06b_device_topology.down.sql');
|
||||
const deviceTopologyVerifySql = read('database/migrations/2026062219_m06b_device_topology.verify.sql');
|
||||
const iotMessagesUpSql = read('database/migrations/2026062220_m06c_iot_messages.up.sql');
|
||||
const iotMessagesDownSql = read('database/migrations/2026062220_m06c_iot_messages.down.sql');
|
||||
const iotMessagesVerifySql = read('database/migrations/2026062220_m06c_iot_messages.verify.sql');
|
||||
|
||||
const coreTables = [
|
||||
'qipai_schema_migrations',
|
||||
@@ -301,5 +304,16 @@ assert.match(deviceTopologyUpSql, /uq_qipai_device_link_child/);
|
||||
assert.match(deviceTopologyUpSql, /uq_qipai_device_link_room_type/);
|
||||
assert.match(deviceTopologyUpSql, /device\.read/);
|
||||
assert.match(deviceTopologyUpSql, /device\.write/);
|
||||
for (const table of [
|
||||
'qipai_iot_commands', 'qipai_iot_device_events', 'qipai_iot_dead_letters'
|
||||
]) {
|
||||
assert.match(iotMessagesUpSql, new RegExp(`CREATE TABLE IF NOT EXISTS ${table}`));
|
||||
assert.match(iotMessagesDownSql, new RegExp(`DROP TABLE IF EXISTS ${table}`));
|
||||
assert.match(iotMessagesVerifySql, new RegExp(`'${table}'`));
|
||||
}
|
||||
assert.match(iotMessagesUpSql, /command_id VARCHAR\(13\)/);
|
||||
assert.match(iotMessagesUpSql, /uq_qipai_iot_event_dedup/);
|
||||
assert.match(iotMessagesUpSql, /receive_count INT UNSIGNED/);
|
||||
assert.match(iotMessagesUpSql, /PENDING/);
|
||||
|
||||
console.log('PASS: M01-B through M06-B migration contracts are present.');
|
||||
console.log('PASS: M01-B through M06-C migration contracts are present.');
|
||||
|
||||
Reference in New Issue
Block a user