db_tools

package
v0.0.0-...-e64b6cb Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 10, 2025 License: MIT Imports: 21 Imported by: 0

README

db-tools

This module provides admin interface to manage database backup tool.

Features:

  • Manual backup creation with custom message;
  • Auto backup creator (using Cron rules);
  • List backups;
  • Remove backups;
  • Download backup files;
  • Configure backup history preservation;
Sample Screen
Sample Screen
Configure Backup Preservation
Configure Backup Preservation
Manual backup creation with custom message
Manual backup creation with custom message

Documentation

Index

Constants

View Source
const (
	JobCreateBackup = "DBTools:CreateBackup"
	JobAutoBackup   = "DBTools:AutoBackup"
)
View Source
const MessagesKey i18n.ModuleKey = "rqv-admin/db-tools"

Variables

View Source
var (
	Messages_en_US = &Messages{
		Auto:                                 "Auto",
		AutoBackup:                           "Auto Backup",
		DatabaseAutoBackup:                   "Database Auto Backup",
		Database:                             "Data Base",
		CreateBackup:                         "Create Backup",
		CreateDatabaseBackup:                 "Create Database Backup",
		DatabaseOlderBackupsRemover:          "Database Older Backups Remover",
		BackupStartedInBackgroundJobTemplate: "Backup Started In Background",
		MessageFormMessage:                   "Message",
		Backups:                              "Backups",
		CreatedAt:                            "Created At",
		DbName:                               "DB Name",
		Size:                                 "Size",
		Message:                              "Message",
		Actions:                              "Actions",
		BackupDetailTemplate:                 "Backup Detail: %s",
		BackupRemovedTemplate:                "Backup Removed: %s",
		BackupRemoveConfirmTemplate:          "Backup Remove Confirm: %s",
		ConfigureBackupPersistence:           "Configure Backup Persistence",
		Persistence: MessagesPersistence{
			Title:       "Persistence",
			Days:        "%d days",
			Weeks:       "%d weeks",
			Months:      "%d months",
			Years:       "%d years",
			NoOther:     "Não definido",
			OtherDays:   "other days",
			OtherWeeks:  "other weeks",
			OtherMonths: "other months",
			OtherYears:  "other years",
			Template:    `{{if .valid}}Persists for {{- join_and " " ", " " e " .enabled .days .weeks .months .years .other}}{{else}}Not persists{{end}}.`,
		},
	}

	Messages_pt_BR = &Messages{
		AutoBackup:                           "Cópia de Segurança Automática",
		DatabaseAutoBackup:                   "Cópia de Segurança Automática do Banco de Dados",
		Database:                             "Banco de Dados",
		CreateBackup:                         "Criar Nova Cópia de Segurança",
		ConfigureBackupPersistence:           "Configurar armezagem da Cópia de Segurança",
		CreateDatabaseBackup:                 "Criar Cópia de Segurança do Banco de Dados",
		DatabaseOlderBackupsRemover:          "Remover Cópias de Segurança antigas do Banco de Dados",
		BackupStartedInBackgroundJobTemplate: `A Cópia de Segurança está sendo gerada em segundo plano. Acesse {link} para acompanhar.`,
		MessageFormMessage:                   "Mensagem",
		Backups:                              "Cópias de Segurança",
		CreatedAt:                            "Criado em",
		DbName:                               "Banco de Dados",
		Size:                                 "Tamanho",
		Message:                              "Mensagem",
		Actions:                              "Ações",
		BackupDetailTemplate:                 "Detalhes do Backup: %s",
		BackupRemovedTemplate:                "Cópia de Segurança <b>%s</b> EXCLUÍDA com sucesso",
		BackupRemoveConfirmTemplate:          "Tem certeza que deseja EXCLUIR a Cópia de Segurança <b>%s</b>?",
		Auto:                                 "Automático",
		Persistence: MessagesPersistence{
			Title:       "Armazenamento",
			Enabled:     "<b class='text-primary'>ATIVADO</b>",
			Disabled:    "<b class='text-warning'>NÃO ATIVADO</b>",
			Days:        "%d dias",
			Weeks:       "%d semanas",
			Months:      "%d meses",
			Years:       "%d anos",
			OtherDays:   "demais dias",
			OtherWeeks:  "demais semanas",
			OtherMonths: "demais meses",
			OtherYears:  "demais anos",
			Template:    `{{if .valid}}{{.enabled}}, manter por {{join_and ", " " e " .days .weeks .months .years .other}}{{else}}<span class='text-warning'>Não manter</span>{{end}}.`,
		},
		PersistenceEnabled: "Ativado",
		PersistenceYears:   "Anos",
		PersistenceMonths:  "Meses",
		PersistenceWeeks:   "Semanas",
		PersistenceDays:    "Dias",
		PersistenceOther:   "Outros",
	}
)

Functions

func ConfigureMessages

func ConfigureMessages(b *i18n.Builder)

Types

type Builder

type Builder struct {
	// contains filtered or unexported fields
}

func New

func New(db *gorm.DB, i18nB *i18n.Builder, wb *worker.Builder) *Builder

func (*Builder) BackupCronSpec

func (b *Builder) BackupCronSpec() string

func (*Builder) DailyBackup

func (b *Builder) DailyBackup() *Builder

func (*Builder) GetConfig

func (b *Builder) GetConfig() (config *DbBackupConfig, err error)

func (*Builder) GetPersistence

func (b *Builder) GetPersistence() (per *db_tools.Persistence, err error)

func (*Builder) Install

func (b *Builder) Install(p *presets.Builder) (err error)

func (*Builder) SetBackupController

func (b *Builder) SetBackupController(v db_tools.BackupController) *Builder

func (*Builder) SetBackupCronSpec

func (b *Builder) SetBackupCronSpec(cronSpec string) *Builder

type DbBackupConfig

type DbBackupConfig struct {
	ID          uint `gorm:"primaryKey"`
	Persistence datatypes.NullJSONType[*db_tools.Persistence]
}

type MessageForm

type MessageForm struct {
	Message string `admin:"required"`
}

type Messages

type Messages struct {
	AutoBackup                           string
	DatabaseAutoBackup                   string
	Database                             string
	CreateBackup                         string
	ConfigureBackupPersistence           string
	CreateDatabaseBackup                 string
	DatabaseOlderBackupsRemover          string
	BackupStartedInBackgroundJobTemplate string
	MessageFormMessage                   string
	Backups                              string
	CreatedAt                            string
	DbName                               string
	Size                                 string
	Message                              string
	Actions                              string
	BackupDetailTemplate                 string
	BackupRemovedTemplate                h.RawHTML
	BackupRemoveConfirmTemplate          h.RawHTML
	Auto                                 string
	Persistence                          MessagesPersistence
	PersistenceEnabled                   string
	PersistenceYears                     string
	PersistenceMonths                    string
	PersistenceWeeks                     string
	PersistenceDays                      string
	PersistenceOther                     string
}

func GetMessages

func GetMessages(ctx context.Context) *Messages

func (*Messages) BackupRemoveConfirm

func (m *Messages) BackupRemoveConfirm(detail string) h.RawHTML

func (*Messages) BackupRemoved

func (m *Messages) BackupRemoved(detail string) h.RawHTML

func (*Messages) BackupStartedInBackgroundJob

func (m *Messages) BackupStartedInBackgroundJob(wb *worker.Builder, ctx context.Context) h.RawHTML

type MessagesPersistence

type MessagesPersistence struct {
	Enabled     string
	Disabled    string
	Title       string
	Days        string
	Weeks       string
	Months      string
	Years       string
	NoOther     string
	OtherDays   string
	OtherWeeks  string
	OtherMonths string
	OtherYears  string
	Template    string
}

func (*MessagesPersistence) Format

func (p *MessagesPersistence) Format(per *db_tools.Persistence) (s h.RawHTML, err error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL