@@ -49,11 +49,41 @@ var scheduleAddCmd = &cobra.Command{
4949 return fmt .Errorf ("unsupported database type: %s" , dbType )
5050 }
5151
52+ // Add cloud upload parameters if requested
53+ if uploadCloud {
54+ params ["upload_cloud" ] = "true"
55+ params ["cloud_provider" ] = cloudProvider
56+ if s3Bucket != "" {
57+ params ["s3_bucket" ] = s3Bucket
58+ }
59+ if s3Prefix != "" {
60+ params ["s3_prefix" ] = s3Prefix
61+ }
62+ if gcsBucket != "" {
63+ params ["gcs_bucket" ] = gcsBucket
64+ }
65+ if gcsPrefix != "" {
66+ params ["gcs_prefix" ] = gcsPrefix
67+ }
68+ if azureAccount != "" {
69+ params ["azure_account" ] = azureAccount
70+ }
71+ if azureContainer != "" {
72+ params ["azure_container" ] = azureContainer
73+ }
74+ if azureBlob != "" {
75+ params ["azure_blob" ] = azureBlob
76+ }
77+ }
78+
5279 if err := scheduler .AddJob (dbType , scheduleCron , params ); err != nil {
5380 fmt .Println ("Failed to schedule backup:" , err )
5481 os .Exit (1 )
5582 }
5683 fmt .Println ("✅ Backup scheduled successfully" )
84+ if uploadCloud {
85+ fmt .Println ("☁️ Cloud upload enabled for this schedule" )
86+ }
5787 return nil
5888 },
5989}
@@ -97,8 +127,18 @@ func init() {
97127 scheduleAddCmd .Flags ().StringVar (& sqlitePath , "path" , "" , "SQLite database path" )
98128 scheduleAddCmd .Flags ().StringVar (& out , "out" , "./backups" , "Output directory" )
99129 scheduleAddCmd .Flags ().StringVar (& scheduleCron , "cron" , "" , "Cron schedule (e.g., '0 2 * * *' for daily at 2 AM)" )
130+
131+ // Cloud upload flags for scheduled backups
132+ scheduleAddCmd .Flags ().BoolVar (& uploadCloud , "upload" , false , "Upload backups to cloud storage automatically" )
133+ scheduleAddCmd .Flags ().StringVar (& cloudProvider , "cloud" , "s3" , "Cloud provider: s3, gcs, or azure" )
134+ scheduleAddCmd .Flags ().StringVar (& s3Bucket , "s3-bucket" , "" , "S3 bucket name (or set DBX_S3_BUCKET env var)" )
135+ scheduleAddCmd .Flags ().StringVar (& s3Prefix , "s3-prefix" , "dbx/" , "S3 prefix/folder path" )
136+ scheduleAddCmd .Flags ().StringVar (& gcsBucket , "gcs-bucket" , "" , "GCS bucket name" )
137+ scheduleAddCmd .Flags ().StringVar (& gcsPrefix , "gcs-prefix" , "dbx/" , "GCS prefix/folder path" )
138+ scheduleAddCmd .Flags ().StringVar (& azureAccount , "azure-account" , "" , "Azure storage account name" )
139+ scheduleAddCmd .Flags ().StringVar (& azureContainer , "azure-container" , "" , "Azure container name" )
140+ scheduleAddCmd .Flags ().StringVar (& azureBlob , "azure-blob" , "" , "Azure blob name (optional)" )
100141
101142 scheduleAddCmd .MarkFlagRequired ("db" )
102143 scheduleAddCmd .MarkFlagRequired ("cron" )
103- }
104144
0 commit comments