mirror of https://github.com/allinssl/allinssl
cf 默认不跳过预检查
parent
8f8f352c6b
commit
a286500c05
|
@ -135,7 +135,12 @@ func Apply(cfg map[string]any, logger *public.Logger) (map[string]any, error) {
|
||||||
|
|
||||||
var skipCheck bool
|
var skipCheck bool
|
||||||
if cfg["skip_check"] == nil {
|
if cfg["skip_check"] == nil {
|
||||||
|
// 默认跳过预检查
|
||||||
skipCheck = true
|
skipCheck = true
|
||||||
|
// cf 默认不跳过预检查
|
||||||
|
if providerStr == "cloudflare" {
|
||||||
|
skipCheck = false
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
switch v := cfg["skip_check"].(type) {
|
switch v := cfg["skip_check"].(type) {
|
||||||
case int:
|
case int:
|
||||||
|
|
|
@ -53,7 +53,7 @@ func DeployToTX(cfg map[string]any) error {
|
||||||
if !ok {
|
if !ok {
|
||||||
return fmt.Errorf("证书错误:cert")
|
return fmt.Errorf("证书错误:cert")
|
||||||
}
|
}
|
||||||
|
|
||||||
var providerID string
|
var providerID string
|
||||||
switch v := cfg["provider_id"].(type) {
|
switch v := cfg["provider_id"].(type) {
|
||||||
case float64:
|
case float64:
|
||||||
|
@ -83,16 +83,16 @@ func DeployToTX(cfg map[string]any) error {
|
||||||
region = r
|
region = r
|
||||||
}
|
}
|
||||||
client := ClientTencentcloud(providerConfig["secret_id"], providerConfig["secret_key"], region)
|
client := ClientTencentcloud(providerConfig["secret_id"], providerConfig["secret_key"], region)
|
||||||
|
|
||||||
// 上传证书
|
// 上传证书
|
||||||
certificateId, err := UploadToTX(client, strings.TrimSpace(keyPem), strings.TrimSpace(certPem))
|
certificateId, err := UploadToTX(client, strings.TrimSpace(keyPem), strings.TrimSpace(certPem))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
// fmt.Println(certificateId)
|
// fmt.Println(certificateId)
|
||||||
|
|
||||||
request := ssl.NewDeployCertificateInstanceRequest()
|
request := ssl.NewDeployCertificateInstanceRequest()
|
||||||
|
|
||||||
request.CertificateId = common.StringPtr(certificateId)
|
request.CertificateId = common.StringPtr(certificateId)
|
||||||
if cfg["resource_type"] == "cdn" {
|
if cfg["resource_type"] == "cdn" {
|
||||||
domain, ok := cfg["domain"].(string)
|
domain, ok := cfg["domain"].(string)
|
||||||
|
@ -118,7 +118,7 @@ func DeployToTX(cfg map[string]any) error {
|
||||||
request.InstanceIdList = common.StringPtrs([]string{fmt.Sprintf("%s|%s|%s", region, bucket, domain)})
|
request.InstanceIdList = common.StringPtrs([]string{fmt.Sprintf("%s|%s|%s", region, bucket, domain)})
|
||||||
request.ResourceType = common.StringPtr("cos")
|
request.ResourceType = common.StringPtr("cos")
|
||||||
}
|
}
|
||||||
|
|
||||||
// 返回的resp是一个DeployCertificateInstanceResponse的实例,与请求对象对应
|
// 返回的resp是一个DeployCertificateInstanceResponse的实例,与请求对象对应
|
||||||
response, err := client.DeployCertificateInstance(request)
|
response, err := client.DeployCertificateInstance(request)
|
||||||
if _, ok := err.(*errors.TencentCloudSDKError); ok {
|
if _, ok := err.(*errors.TencentCloudSDKError); ok {
|
||||||
|
|
|
@ -4,32 +4,32 @@ import (
|
||||||
"database/sql"
|
"database/sql"
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
_ "modernc.org/sqlite" // 使用 pure Go 实现的 SQLite 驱动
|
_ "modernc.org/sqlite" // 使用 pure Go 实现的 SQLite 驱动
|
||||||
)
|
)
|
||||||
|
|
||||||
func EnsureDatabaseWithTables(targetDBPath string, baseDBPath string, tables []string) error {
|
func EnsureDatabaseWithTables(targetDBPath string, baseDBPath string, tables []string) error {
|
||||||
// 1. 检查数据库是否存在
|
// 1. 检查数据库是否存在
|
||||||
if _, err := os.Stat(targetDBPath); err == nil {
|
if _, err := os.Stat(targetDBPath); err == nil {
|
||||||
fmt.Printf("数据库 %s 已存在,跳过迁移。\n", targetDBPath)
|
// fmt.Printf("数据库 %s 已存在,跳过迁移。\n", targetDBPath)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
fmt.Printf("数据库 %s 不存在,开始从基础数据库迁移表...\n", targetDBPath)
|
// fmt.Printf("数据库 %s 不存在,开始从基础数据库迁移表...\n", targetDBPath)
|
||||||
|
|
||||||
// 2. 打开源数据库(只读)和目标数据库(新建)
|
// 2. 打开源数据库(只读)和目标数据库(新建)
|
||||||
baseDB, err := sql.Open("sqlite", baseDBPath)
|
baseDB, err := sql.Open("sqlite", baseDBPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("打开基础数据库失败: %v", err)
|
return fmt.Errorf("打开基础数据库失败: %v", err)
|
||||||
}
|
}
|
||||||
defer baseDB.Close()
|
defer baseDB.Close()
|
||||||
|
|
||||||
targetDB, err := sql.Open("sqlite", targetDBPath)
|
targetDB, err := sql.Open("sqlite", targetDBPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("创建目标数据库失败: %v", err)
|
return fmt.Errorf("创建目标数据库失败: %v", err)
|
||||||
}
|
}
|
||||||
defer targetDB.Close()
|
defer targetDB.Close()
|
||||||
|
|
||||||
for _, table := range tables {
|
for _, table := range tables {
|
||||||
// 2.1 获取建表语句
|
// 2.1 获取建表语句
|
||||||
var createSQL string
|
var createSQL string
|
||||||
|
@ -38,26 +38,26 @@ func EnsureDatabaseWithTables(targetDBPath string, baseDBPath string, tables []s
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("获取表 %s 的结构失败: %v", table, err)
|
return fmt.Errorf("获取表 %s 的结构失败: %v", table, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 2.2 在目标库中创建表
|
// 2.2 在目标库中创建表
|
||||||
_, err = targetDB.Exec(createSQL)
|
_, err = targetDB.Exec(createSQL)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("创建表 %s 失败: %v", table, err)
|
return fmt.Errorf("创建表 %s 失败: %v", table, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 2.3 从基础库读取数据并插入目标库
|
// 2.3 从基础库读取数据并插入目标库
|
||||||
rows, err := baseDB.Query(fmt.Sprintf("SELECT * FROM %s", table))
|
rows, err := baseDB.Query(fmt.Sprintf("SELECT * FROM %s", table))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("读取表 %s 数据失败: %v", table, err)
|
return fmt.Errorf("读取表 %s 数据失败: %v", table, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
cols, _ := rows.Columns()
|
cols, _ := rows.Columns()
|
||||||
values := make([]interface{}, len(cols))
|
values := make([]interface{}, len(cols))
|
||||||
valuePtrs := make([]interface{}, len(cols))
|
valuePtrs := make([]interface{}, len(cols))
|
||||||
|
|
||||||
tx, _ := targetDB.Begin()
|
tx, _ := targetDB.Begin()
|
||||||
stmt, _ := tx.Prepare(buildInsertSQL(table, len(cols)))
|
stmt, _ := tx.Prepare(buildInsertSQL(table, len(cols)))
|
||||||
|
|
||||||
for rows.Next() {
|
for rows.Next() {
|
||||||
for i := range values {
|
for i := range values {
|
||||||
valuePtrs[i] = &values[i]
|
valuePtrs[i] = &values[i]
|
||||||
|
@ -65,13 +65,13 @@ func EnsureDatabaseWithTables(targetDBPath string, baseDBPath string, tables []s
|
||||||
rows.Scan(valuePtrs...)
|
rows.Scan(valuePtrs...)
|
||||||
stmt.Exec(values...)
|
stmt.Exec(values...)
|
||||||
}
|
}
|
||||||
|
|
||||||
stmt.Close()
|
stmt.Close()
|
||||||
tx.Commit()
|
tx.Commit()
|
||||||
rows.Close()
|
rows.Close()
|
||||||
}
|
}
|
||||||
|
|
||||||
fmt.Println("迁移完成。")
|
// fmt.Println("迁移完成。")
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue