Compare commits

..

5 Commits

Author SHA1 Message Date
fd444293b4 Merge pull request #153 from jkaninda/refactor
fix: S3 remote path when backing up multiple databases
2024-12-07 02:34:42 +01:00
Jonas Kaninda
1940ceba9a fix: S3 remote path when backing up multiple databases 2024-12-07 02:25:22 +01:00
Jonas Kaninda
07d580a8a9 refactoring of code 2024-12-07 02:23:38 +01:00
9a261b22ec Merge pull request #152 from jkaninda/refactor
docs: update features
2024-12-06 22:09:12 +01:00
Jonas Kaninda
e7a58f0569 docs: update features 2024-12-06 22:08:51 +01:00
20 changed files with 43 additions and 40 deletions

View File

@@ -24,7 +24,7 @@ It supports a variety of storage options and ensures data security through GPG e
- **Deployment Flexibility:** - **Deployment Flexibility:**
- Available as the [jkaninda/mysql-bkup](https://hub.docker.com/r/jkaninda/mysql-bkup) Docker image. - Available as the [jkaninda/mysql-bkup](https://hub.docker.com/r/jkaninda/mysql-bkup) Docker image.
- Deployable on **Docker**, **Docker Swarm**, and **Kubernetes**. - Deployable on **Docker**, **Docker Swarm**, and **Kubernetes**.
- Supports recurring backups of PostgreSQL databases when deployed: - Supports recurring backups of MySQL databases when deployed:
- On Docker for automated backup schedules. - On Docker for automated backup schedules.
- As a **Job** or **CronJob** on Kubernetes. - As a **Job** or **CronJob** on Kubernetes.
@@ -35,9 +35,9 @@ It supports a variety of storage options and ensures data security through GPG e
## Use Cases ## Use Cases
- **Automated Recurring Backups:** Schedule regular backups for PostgreSQL databases. - **Automated Recurring Backups:** Schedule regular backups for MySQL databases.
- **Cross-Environment Migration:** Easily migrate your PostgreSQL databases across different environments using supported storage options. - **Cross-Environment Migration:** Easily migrate your MySQL databases across different environments using supported storage options.
- **Secure Backup Management:** Protect your data with Gmysql encryption. - **Secure Backup Management:** Protect your data with GPG encryption.
Successfully tested on: Successfully tested on:

View File

@@ -1,4 +1,3 @@
// Package cmd /
/* /*
MIT License MIT License
@@ -22,6 +21,7 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.
*/ */
package cmd package cmd
import ( import (

View File

@@ -1,4 +1,3 @@
// Package cmd /
/* /*
MIT License MIT License
@@ -22,6 +21,7 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.
*/ */
package cmd package cmd
import ( import (

View File

@@ -1,5 +1,3 @@
package cmd
/* /*
MIT License MIT License
@@ -23,6 +21,9 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.
*/ */
package cmd
import ( import (
"github.com/jkaninda/mysql-bkup/pkg" "github.com/jkaninda/mysql-bkup/pkg"
"github.com/jkaninda/mysql-bkup/utils" "github.com/jkaninda/mysql-bkup/utils"

View File

@@ -1,4 +1,3 @@
// Package cmd /
/* /*
MIT License MIT License
@@ -22,6 +21,7 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.
*/ */
package cmd package cmd
import ( import (

View File

@@ -1,4 +1,3 @@
// Package cmd /
/* /*
MIT License MIT License
@@ -22,6 +21,7 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.
*/ */
package cmd package cmd
import ( import (

View File

@@ -25,7 +25,7 @@ It supports a variety of storage options and ensures data security through GPG e
- **Deployment Flexibility:** - **Deployment Flexibility:**
- Available as the [jkaninda/mysql-bkup](https://hub.docker.com/r/jkaninda/mysql-bkup) Docker image. - Available as the [jkaninda/mysql-bkup](https://hub.docker.com/r/jkaninda/mysql-bkup) Docker image.
- Deployable on **Docker**, **Docker Swarm**, and **Kubernetes**. - Deployable on **Docker**, **Docker Swarm**, and **Kubernetes**.
- Supports recurring backups of PostgreSQL databases when deployed: - Supports recurring backups of MySQL databases when deployed:
- On Docker for automated backup schedules. - On Docker for automated backup schedules.
- As a **Job** or **CronJob** on Kubernetes. - As a **Job** or **CronJob** on Kubernetes.
@@ -36,9 +36,9 @@ It supports a variety of storage options and ensures data security through GPG e
## Use Cases ## Use Cases
- **Automated Recurring Backups:** Schedule regular backups for PostgreSQL databases. - **Automated Recurring Backups:** Schedule regular backups for MySQL databases.
- **Cross-Environment Migration:** Easily migrate your PostgreSQL databases across different environments using supported storage options. - **Cross-Environment Migration:** Easily migrate your MySQL databases across different environments using supported storage options.
- **Secure Backup Management:** Protect your data with Gmysql encryption. - **Secure Backup Management:** Protect your data with GPG encryption.

View File

@@ -1,4 +1,3 @@
// Package main /
/* /*
MIT License MIT License
@@ -22,6 +21,7 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.
*/ */
package main package main
import "github.com/jkaninda/mysql-bkup/cmd" import "github.com/jkaninda/mysql-bkup/cmd"

View File

@@ -22,6 +22,7 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.
*/ */
package pkg package pkg
import ( import (

View File

@@ -1,4 +1,3 @@
// Package internal /
/* /*
MIT License MIT License
@@ -22,6 +21,7 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.
*/ */
package pkg package pkg
import ( import (

View File

@@ -1,4 +1,3 @@
// Package internal /
/* /*
MIT License MIT License
@@ -22,6 +21,7 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.
*/ */
package pkg package pkg
import ( import (

View File

@@ -1,4 +1,3 @@
// Package internal /
/* /*
MIT License MIT License
@@ -22,6 +21,7 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.
*/ */
package pkg package pkg
import ( import (

View File

@@ -1,6 +1,3 @@
// Package internal /
package pkg
/* /*
MIT License MIT License
@@ -24,6 +21,9 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.
*/ */
package pkg
import ( import (
"github.com/jkaninda/encryptor" "github.com/jkaninda/encryptor"
"github.com/jkaninda/go-storage/pkg/local" "github.com/jkaninda/go-storage/pkg/local"

View File

@@ -59,7 +59,7 @@ func s3Backup(db *dbConfig, config *BackupConfig) {
Region: awsConfig.region, Region: awsConfig.region,
DisableSsl: awsConfig.disableSsl, DisableSsl: awsConfig.disableSsl,
ForcePathStyle: awsConfig.forcePathStyle, ForcePathStyle: awsConfig.forcePathStyle,
RemotePath: awsConfig.remotePath, RemotePath: config.remotePath,
LocalPath: tmpPath, LocalPath: tmpPath,
}) })
if err != nil { if err != nil {
@@ -120,7 +120,7 @@ func s3Restore(db *dbConfig, conf *RestoreConfig) {
Region: awsConfig.region, Region: awsConfig.region,
DisableSsl: awsConfig.disableSsl, DisableSsl: awsConfig.disableSsl,
ForcePathStyle: awsConfig.forcePathStyle, ForcePathStyle: awsConfig.forcePathStyle,
RemotePath: awsConfig.remotePath, RemotePath: conf.remotePath,
LocalPath: tmpPath, LocalPath: tmpPath,
}) })
if err != nil { if err != nil {

View File

@@ -1,4 +1,3 @@
// Package internal /
/* /*
MIT License MIT License
@@ -22,6 +21,7 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.
*/ */
package pkg package pkg
const tmpPath = "/tmp/backup" const tmpPath = "/tmp/backup"

View File

@@ -1,5 +1,3 @@
package utils
/* /*
MIT License MIT License
@@ -23,6 +21,9 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.
*/ */
package utils
import "os" import "os"
type MailConfig struct { type MailConfig struct {

View File

@@ -1,4 +1,3 @@
// Package utils /
/* /*
MIT License MIT License
@@ -22,6 +21,7 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.
*/ */
package utils package utils
const RestoreExample = "restore --dbname database --file db_20231219_022941.sql.gz\n" + const RestoreExample = "restore --dbname database --file db_20231219_022941.sql.gz\n" +

View File

@@ -1,13 +1,3 @@
package utils
import (
"fmt"
"log"
"os"
"runtime"
"strings"
)
/* /*
MIT License MIT License
@@ -32,6 +22,16 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.
*/ */
package utils
import (
"fmt"
"log"
"os"
"runtime"
"strings"
)
// Info returns info log // Info returns info log
func Info(msg string, args ...interface{}) { func Info(msg string, args ...interface{}) {
log.SetOutput(getStd("/dev/stdout")) log.SetOutput(getStd("/dev/stdout"))

View File

@@ -1,5 +1,3 @@
package utils
/* /*
MIT License MIT License
@@ -24,6 +22,8 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.
*/ */
package utils
import ( import (
"bytes" "bytes"
"crypto/tls" "crypto/tls"

View File

@@ -1,4 +1,3 @@
// Package utils /
/* /*
MIT License MIT License
@@ -22,6 +21,7 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.
*/ */
package utils package utils
import ( import (