新增快手平台和对应的接口

This commit is contained in:
2026-06-01 14:08:17 +08:00
parent 15db71b7ba
commit 812693caae
14 changed files with 1529 additions and 185 deletions

View File

@@ -86,18 +86,29 @@ func buildCreateSQL(td *TableDefinition) string {
}
cols = append(cols, "raw_data JSONB DEFAULT '{}'")
// 添加复合唯一索引(用于 ON CONFLICT upsert,所有 conflict_keys 作为一个复合索引
// 添加复合唯一索引(用于 ON CONFLICT upsert
var constraints []string
if len(td.ConflictKeys) > 0 {
cols := strings.Join(td.ConflictKeys, ", ")
ck := strings.Join(td.ConflictKeys, ", ")
indexName := fmt.Sprintf("uq_%s_conflict", td.TableName)
constraints = append(constraints,
fmt.Sprintf("CREATE UNIQUE INDEX IF NOT EXISTS %s ON %s (%s)", indexName, td.TableName, cols))
fmt.Sprintf("CREATE UNIQUE INDEX IF NOT EXISTS %s ON %s (%s)", indexName, td.TableName, ck))
}
sql := fmt.Sprintf("CREATE TABLE IF NOT EXISTS %s (\n %s\n);\n", td.TableName, strings.Join(cols, ",\n "))
// 添加唯一索引
if len(constraints) > 0 {
sql += strings.Join(constraints, ";\n") + ";"
sql += strings.Join(constraints, ";\n") + ";\n"
}
// 添加字段注释COMMENT ON COLUMN
for _, c := range td.Columns {
if c.Comment != "" {
escaped := strings.ReplaceAll(c.Comment, "'", "''")
sql += fmt.Sprintf("COMMENT ON COLUMN %s.%s IS '%s';\n", td.TableName, c.Name, escaped)
}
}
return sql
}