refactor(db): 移除对分区表列类型的冗余修改
删除在DatabaseManager中重复修改分区表room_id和ip列类型的代码,因为这些修改已在主表上执行并自动应用到所有分区
This commit is contained in:
@@ -234,29 +234,6 @@ class DatabaseManager {
|
|||||||
await this.pool.query(
|
await this.pool.query(
|
||||||
'ALTER TABLE heartbeat.heartbeat_events ADD CONSTRAINT chk_room_id_len CHECK (char_length(room_id) > 0 AND char_length(room_id) <= 50)'
|
'ALTER TABLE heartbeat.heartbeat_events ADD CONSTRAINT chk_room_id_len CHECK (char_length(room_id) > 0 AND char_length(room_id) <= 50)'
|
||||||
);
|
);
|
||||||
|
|
||||||
const parts = await this.pool.query(
|
|
||||||
`
|
|
||||||
SELECT c.relname AS partition
|
|
||||||
FROM pg_inherits i
|
|
||||||
JOIN pg_class c ON c.oid = i.inhrelid
|
|
||||||
JOIN pg_class p ON p.oid = i.inhparent
|
|
||||||
JOIN pg_namespace n ON n.oid = p.relnamespace
|
|
||||||
WHERE n.nspname = 'heartbeat'
|
|
||||||
AND p.relname = 'heartbeat_events'
|
|
||||||
ORDER BY c.relname
|
|
||||||
`
|
|
||||||
);
|
|
||||||
|
|
||||||
for (const row of parts.rows ?? []) {
|
|
||||||
const name = row?.partition;
|
|
||||||
if (!name) continue;
|
|
||||||
await this.pool.query(
|
|
||||||
`ALTER TABLE heartbeat.${this.escapeIdentifier(name)}
|
|
||||||
ALTER COLUMN room_id TYPE varchar(50)
|
|
||||||
USING room_id::text`
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async ensureIpColumnVarchar() {
|
async ensureIpColumnVarchar() {
|
||||||
@@ -284,29 +261,6 @@ class DatabaseManager {
|
|||||||
ALTER COLUMN ip TYPE varchar(21)
|
ALTER COLUMN ip TYPE varchar(21)
|
||||||
USING ip::text`
|
USING ip::text`
|
||||||
);
|
);
|
||||||
|
|
||||||
const parts = await this.pool.query(
|
|
||||||
`
|
|
||||||
SELECT c.relname AS partition
|
|
||||||
FROM pg_inherits i
|
|
||||||
JOIN pg_class c ON c.oid = i.inhrelid
|
|
||||||
JOIN pg_class p ON p.oid = i.inhparent
|
|
||||||
JOIN pg_namespace n ON n.oid = p.relnamespace
|
|
||||||
WHERE n.nspname = 'heartbeat'
|
|
||||||
AND p.relname = 'heartbeat_events'
|
|
||||||
ORDER BY c.relname
|
|
||||||
`
|
|
||||||
);
|
|
||||||
|
|
||||||
for (const row of parts.rows ?? []) {
|
|
||||||
const name = row?.partition;
|
|
||||||
if (!name) continue;
|
|
||||||
await this.pool.query(
|
|
||||||
`ALTER TABLE heartbeat.${this.escapeIdentifier(name)}
|
|
||||||
ALTER COLUMN ip TYPE varchar(21)
|
|
||||||
USING ip::text`
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
escapeIdentifier(id) {
|
escapeIdentifier(id) {
|
||||||
|
|||||||
Reference in New Issue
Block a user