# Functions
AddColumn 在表中添加新列
参数: - db *sql.DB: 数据库连接实例 - tableName string: 要添加列的表名 - columnName string: 要添加的列名 - columnType string: 列的数据类型
返回值: - error: 添加过程中的错误,如果成功则为nil.
AggressiveValueLogGC 执行激进的值日志垃圾回收
参数: - db *badgerhold.Store: 数据库实例
返回值: - error: 如果GC过程中发生错误,返回错误信息.
BackupDatabase 备份数据库到指定文件 参数: - store: *badgerhold.Store 表示数据库实例 - backupPath: string 表示备份文件的路径
返回值: - error: 如果备份过程中出现错误,返回错误信息.
CheckDatabaseStatus 检查数据库是否损坏 参数: - store: *badgerhold.Store 表示数据库实例
返回值: - error: 如果数据库损坏或无法访问,返回错误信息.
ClearDatabase 清空数据库中所有数据
参数: - db *badgerhold.Store: 数据库实例
返回值: - error: 如果清空过程中发生错误,返回错误信息.
Count 返回表中记录总数
参数: - db *sql.DB: 数据库连接实例 - tableName string: 要查询的表名 - conditions []string: WHERE条件语句 - args []interface{}: conditions中的参数值
返回值: - int: 记录总数 - error: 查询过程中的错误,如果成功则为nil.
CreateFileSegmentStorageTable 创建文件片段存储表 参数: - db: SQLite数据库连接实例
返回值: - error: 如果创建成功返回nil,否则返回错误信息.
CreateTable 创建数据库表
参数: - db *sql.DB: 数据库连接实例 - tableName string: 要创建的表名 - columns []string: 列定义字符串的切片,如 []string{"id INTEGER PRIMARY KEY", "name TEXT"}
返回值: - error: 创建过程中的错误,如果成功则为nil.
Delete 在表中删除数据
参数: - db *sql.DB: 数据库连接实例 - tableName string: 要删除数据的表名 - conditions []string: WHERE条件语句 - args []interface{}: conditions中的参数值
返回值: - error: 删除过程中的错误,如果成功则为nil.
Exists 查询是否存在满足条件的记录
参数: - db *sql.DB: 数据库连接实例 - tableName string: 要查询的表名 - conditions []string: WHERE条件语句 - args []interface{}: conditions中的参数值
返回值: - bool: 是否存在满足条件的记录 - error: 查询过程中的错误,如果成功则为nil.
ForceCleanup 强制清理数据库
参数: - db *badgerhold.Store: 数据库实例
返回值: - error: 如果清理过程中发生错误,返回错误信息.
ForceValueLogGC 强制执行 value log 垃圾回收
参数: - db *badgerhold.Store: 数据库实例 - ratio float64: GC触发阈值(0.0-1.0)
返回值: - error: 如果GC过程中发生错误,返回错误信息.
InitDBTable 初始化 创建数据库 并设置相关的生命周期钩子 参数: - lc: fx.Lifecycle 用于管理应用生命周期的对象 - input: InitDBTableInput 包含初始化所需的输入参数
返回值: - error 如果初始化过程中发生错误,则返回相应的错误信息.
Insert 向表中插入数据
参数: - db *sql.DB: 数据库连接实例 - tableName string: 要插入数据的表名 - data map[string]interface{}: 键为列名,值为对应的数据
返回值: - error: 插入过程中的错误,如果成功则为nil.
ModifyColumnType 修改数据库表中指定列的数据类型
参数: - db *sql.DB: 数据库连接实例 - tableName string: 要修改的表名 - columnName string: 要修改的列名 - newColumnType string: 新的数据类型
返回值: - error: 修改过程中的错误,如果成功则为nil.
NewBadgerDB 创建并初始化一个新的BadgerDB实例
参数: - ctx context.Context: 上下文对象,用于控制数据库生命周期
返回值: - *badgerhold.Store: BadgerDB存储实例 - error: 如果初始化过程中发生错误,返回错误信息.
NewBadgerholdStore 是用于创建和初始化 Badgerhold 数据库的构造函数。 参数: - lc fx.Lifecycle: 应用的生命周期管理器 - input NewBadgerholdStoreInput: 包含全局上下文的输入结构体
返回值: - out NewBadgerholdStoreOutput: 包含初始化后的数据库实例的输出结构体 - err error: 如果初始化过程中发生错误,返回错误信息.
NewDownloadFileStore 创建一个新的下载文件存储管理器.
NewDownloadSegmentStore 创建一个新的下载片段存储管理器.
NewFileAssetStore 创建一个新的 FileAssetStore 实例 参数: - db: *badgerhold.Store 数据库连接实例
返回值: - *FileAssetStore: 新创建的 FileAssetStore 实例.
NewFileSegmentStorageSqlStore 创建新的文件片段存储实例 参数: - sqlite: SQLite数据库连接实例
返回值: - *FileSegmentStorageSqlStore: 新创建的文件片段存储实例.
NewFileSegmentStorageStore 创建一个新的 FileSegmentStorageStore 实例 参数: - db: badgerhold.Store 数据库实例
返回值: - *FileSegmentStorageStore: 新创建的 FileSegmentStorageStore 实例.
NewSqliteDB 创建并初始化一个新的SQLite数据库连接
参数: - ctx context.Context: 上下文对象,用于控制后台任务的生命周期
返回值: - *sql.DB: 数据库连接实例 - error: 初始化过程中的错误,如果成功则为nil.
NewUploadFileStore 创建一个新的 UploadFileStore 实例 参数: - db: *badgerhold.Store 数据库连接实例
返回值: - *UploadFileStore: 新创建的 UploadFileStore 实例.
NewUploadSegmentStore 创建一个新的 UploadSegmentStore 实例 参数: - db: *badgerhold.Store 数据库连接实例
返回值: - *UploadSegmentStore: 新创建的 UploadSegmentStore 实例.
RestoreDatabaseFromBackup 从备份文件恢复数据库 参数: - backupPath: string 表示备份文件的路径 - dbPath: string 表示数据库文件的路径
返回值: - error: 如果恢复过程中出现错误,返回错误信息.
Select 从表中查询数据
参数: - db *sql.DB: 数据库连接实例 - tableName string: 要查询的表名 - columns []string: 要查询的列名 - conditions []string: WHERE条件语句 - args []interface{}: conditions中的参数值 - start int: 查询的起始行 - limit int: 查询的行数 - orderBy string: 排序字段,可包含多个字段,如"field1 ASC, field2 DESC"
返回值: - *sql.Rows: 查询结果集 - error: 查询过程中的错误,如果成功则为nil.
SelectOne 从表中查询一条数据
参数: - db *sql.DB: 数据库连接实例 - tableName string: 要查询的表名 - columns []string: 要查询的列名 - conditions []string: WHERE条件语句 - args []interface{}: conditions中的参数值
返回值: - *sql.Row: 查询结果 - error: 查询过程中的错误,如果成功则为nil.
ToFileSegmentStorage 将 FileSegmentStorageSql 转换为 FileSegmentStorage.
ToFileSegmentStorageSql 将 FileSegmentStorage 转换为 FileSegmentStorageSql.
TruncateTable 删除表中所有数据
参数: - db *sql.DB: 数据库连接实例 - tableName string: 要清空的表名 - vacuum bool: 是否在删除后执行VACUUM操作来回收空间
返回值: - int64: 删除的记录数 - error: 删除过程中的错误,如果成功则为nil.
TruncateTableTx 在事务中删除表中所有数据
参数: - db *sql.DB: 数据库连接实例 - tx *sql.Tx: 事务实例 - tableName string: 要清空的表名
返回值: - int64: 删除的记录数 - error: 删除过程中的错误,如果成功则为nil.
TxDelete 在事务中删除表中数据
参数: - db *sql.DB: 数据库连接实例 - tx *sql.Tx: 事务实例 - tableName string: 要删除数据的表名 - conditions []string: WHERE条件语句 - args []interface{}: conditions中的参数值
返回值: - error: 删除过程中的错误,如果成功则为nil.
TxInsert 在事务中向表中插入数据
参数: - db *sql.DB: 数据库连接实例 - tx *sql.Tx: 事务实例 - tableName string: 要插入数据的表名 - data map[string]interface{}: 键为列名,值为对应的数据
返回值: - error: 插入过程中的错误,如果成功则为nil.
Update 在表中更新数据
参数: - db *sql.DB: 数据库连接实例 - tableName string: 要更新的表名 - data map[string]interface{}: 键为列名,值为新的数据 - conditions []string: WHERE条件语句 - args []interface{}: conditions中的参数值
返回值: - error: 更新过程中的错误,如果成功则为nil.
WithExtension 按文件扩展名筛选 参数: - extension: string 要筛选的文件扩展名
返回值: - QueryOption: 查询选项函数.
WithName 按文件名搜索 参数: - name: string 要搜索的文件名
返回值: - QueryOption: 查询选项函数.
WithShared 筛选共享文件 参数: - isShared: bool 是否筛选共享文件
返回值: - QueryOption: 查询选项函数.
WithStatus 按状态筛选的查询选项 参数: - status: pb.UploadStatus 要筛选的上传状态
返回值: - QueryOption: 返回一个查询选项函数.
WithTimeRange 按上传时间范围筛选 参数: - startTime: int64 时间范围的开始时间戳 - endTime: int64 时间范围的结束时间戳
返回值: - QueryOption: 查询选项函数.
WithType 按文件类型筛选(文件或文件夹) 参数: - fileType: int32 要筛选的文件类型
返回值: - QueryOption: 查询选项函数.
WithTimeRange 按时间范围筛选的查询选项 参数: - startTime: int64 开始时间戳 - endTime: int64 结束时间戳
返回值: - QueryOption: 返回一个查询选项函数.
# Constants
备份文件名.
# Structs
DB 数据库结构体,包含BadgerDB和SqliteDB实例.
DownloadFileStore 管理下载文件记录的存储.
DownloadSegmentStore 管理下载片段记录的存储.
FileAssetStore 处理 FileAssetRecord 的数据库操作.
FileSegmentStorageSqlStore 文件片段存储的SQLite实现.
FileSegmentStorageStore 处理 FileSegmentStorage 的数据库操作.
InitDBTable 定义了初始化 UploadManager 所需的输入参数.
MapEntry 用于序列化单个 map 条目.
NewDBInput 是用于传递给 NewBadgerholdStore 函数的输入结构体。 它包含了 fx.In 嵌入结构体和应用的生命周期管理器 LC。.
NewBadgerholdStoreOutput 是 NewBadgerholdStore 函数的输出结构体。 它包含了 fx.Out 嵌入结构体和 Badgerhold 数据库实例 DB。.
SliceTableWrapper 用于包装 SliceTable map 以便序列化.
UploadFileStore 处理 UploadFileRecord 的数据库操作.
UploadSegmentStore 处理上传片段记录的数据库操作.
# Type aliases
QueryOption 定义查询选项函数类型.