Skip to main content

sqltool/
lib.rs

1//! SQLTool 库 - 数据库数据和结构转移工具
2//!
3//! 提供数据库之间的数据转移、结构迁移和比较功能
4//! 支持多种数据库类型,包括 MySQL、PostgreSQL、SQLite、Redis、MongoDB 等
5
6#![allow(unused)]
7#![allow(non_snake_case)]
8
9use env_logger;
10
11pub mod core;
12pub mod databases;
13pub mod models;
14pub mod commands;
15pub mod utils;
16
17#[cfg(test)]
18mod tests;
19
20/// 库的版本号
21pub const VERSION: &str = env!("CARGO_PKG_VERSION");
22
23/// 初始化库
24pub fn init() {
25    env_logger::init();
26}
27
28/// 导出核心功能
29pub use core::DataTransfer;
30pub use core::StructureMigration;
31pub use core::SchemaComparator;
32pub use core::FieldMapper;
33pub use core::SchemaComparison;
34pub use core::SmartFieldMatcher;
35pub use core::DatabaseBackup;
36pub use core::{BackupConfig, BackupType, BackupMetadata, BackupProgress, BackupPhase, RestoreReport, BackupVerificationReport, IncrementalBackupTracker, ChangeRecord};
37pub use core::{DataCompareConfig, CompareMode, CompareResult, SchemaDiff, SchemaDiffType, DataDiff, DataDiffType, RowDiff, CompareStats, DataComparer};
38pub use core::{TransactionManager, TransactionExecutor};
39pub use core::{IncrementalSync, IncrementalConfig, ConflictResolution, SyncResult};
40pub use core::{SqlGenerator, SqlGeneratorConfig, FieldConnectionMapper, PlaceholderStyle};
41pub use core::{TableSync, TableSyncConfig, SyncMode, ConflictStrategy};
42pub use core::{DatabaseMaintainer, DatabaseBackup as DbBackup, DatabaseRestore, OptimizationResult, RepairResult, CleanupResult, DatabaseStatus, BackupResult, RestoreResult};
43pub use core::{FieldMatcherConfig, MatchStrategy, MatchResult, MatchType, TargetSchemaInfo, ConversionSuggestionGenerator, ConversionSuggestion, SuggestionType, Priority, ConversionSuggestions};
44pub use core::{RedisConverter, MongoDbConverter, KvConversionConfig, KvDataType, JsonMode, FieldMergeStrategy, RedisCommand, MongoOperation, KvConversionResult, BatchKvConverter};
45pub use core::{TimeSeriesConfig, TimeSeriesConverter, InfluxDbConverter, TimescaleDbConverter, TaodbConverter, TimeSeriesPoint, MetricValue, PartitionStrategy, TimeInterval, BatchWriteResult, WriteStatus};
46pub use core::{ShardingConfig, ShardingStrategy, ShardingManager, ShardInfo, ShardParam, ShardMigrationPlan, ShardMigrationTask, ShardRouter, GlobalShardingManager};
47pub use core::{QueryFusionEngine, FusionQuery, FusionResult, FusionStrategy, CrossShardPlan, QueryAnalysis, QueryType, ComplexityLevel, UnionStrategy, JoinStrategy, JoinType};
48pub use core::{DistributedTransaction, TxParticipant, TxStatus, ParticipantStatus, DistributedTxManager, TxCoordinator, SagaTransaction, SagaStep, CompensationStep, SagaStatus, SagaManager, XaTransaction, XaResourceManager, XaState};
49pub use core::{MultiDatabaseConfig, DatabaseInstanceConfig, DatabaseInstance, MultiDatabaseManager, DatabaseInfo, HealthStatus, BackupInfo, BackupStatus, DatabaseRouter, RoutingRule, TableRouter, TableShardingRule, ShardingType as DbShardingType};
50pub use core::{DatabaseMetadata, TableMetadata, FieldMetadata, ForeignKeyMetadata, ViewMetadata, FunctionMetadata, FunctionArgument, StoredProcedureMetadata, TriggerMetadata, IndexMetadata, MetadataManager};
51pub use core::{SqlExecutor, ExecutionResult, ExecutionMetadata, QueryBuilder, SqlType};
52pub use core::{Session, SessionManager, DatabaseSession, ViewManager, FunctionManager, IndexManager, ViewOperation};
53pub use core::{SlowQueryConfig, SlowQueryLog, QueryProfile, IndexUsageInfo, QueryOptimizationSuggestion, IssueType, Severity, SlowQueryDetector, QueryMetrics};
54pub use core::{NewSqlAnalyzer, NewSqlCapabilities, PerformanceMetrics, DistributionInfo, NodeHealth, NodeStatus, NodeRole, ShardAnalysis, ShardingType, DataSkewReport, ConflictAnalysis, HotRecord, NewSqlOptimizationResult, QueryRouter, RoutingRule as SqlRoutingRule, ConsistencyCheck, ConsistencyStatus, RepairReport, NewSqlShardInfo, SplitPoint, NewSqlAnalyzerBuilder};
55pub use core::{TableConfig, ShardStrategy, ShardInfo as AutoShardInfo, SpanningQueryResult, CompressionConfig, AutoShardingManager, StorageBackend, CompressionHandler, SmartAutoOptimizer, OptimizationRule, OptimizationReport, ShardSummary};
56pub use core::{LogTableConfig, PartitionType, LogPartition, LogQuery, LogQueryResult, LogStats, LogTableManager, LogAggregator, TimeWindowAggregation};
57pub use databases::{DatabaseConnection, DatabaseType, create_connection, DatabaseVersion, DatabaseCompatibility, MySqlCompatibility, PostgresCompatibility, SqliteCompatibility};
58pub use databases::connection::{ConnectionConfig, MySqlConfig, PostgresConfig, SqliteConfig, RedisConfig, SslMode, JournalMode};
59pub use models::{TableSchema, Field, FieldMapping, TableMapping};
60pub use commands::{Args, execute, start_http_server};
61pub use utils::{SqlToolError, SqlResult, DataValidator, DataTransformer, DataFilter, SqlInjectionDetector, InjectionReport, RiskLevel, Finding, FindingCategory, FieldSecurityValidator, SimpleEncryptor, SafeSqlBuilder};
62pub use utils::{OperationResult, OperationDetails, TransferDetails, BackupDetails, CompareDetails, SyncDetails, OperationTimer, OperationBuilder};
63pub use utils::{ConnectionString, validate_connection_string};
64
65/// FFI模块,用于其他语言调用
66pub mod ffi;
67pub use ffi::*;