2
0
mirror of https://github.com/acepanel/panel.git synced 2026-02-04 07:57:21 +08:00

refactor: 备份重构

This commit is contained in:
耗子
2024-10-13 17:43:36 +08:00
parent bf9c0bc12e
commit 5668bc1afd
18 changed files with 967 additions and 76 deletions

View File

@@ -72,6 +72,31 @@ func (m *MySQL) DatabaseDrop(name string) error {
return err
}
func (m *MySQL) DatabaseExists(name string) (bool, error) {
rows, err := m.Query("SHOW DATABASES")
if err != nil {
return false, err
}
defer rows.Close()
for rows.Next() {
var database string
if err := rows.Scan(&database); err != nil {
continue
}
if database == name {
return true, nil
}
}
return false, nil
}
func (m *MySQL) DatabaseSize(name string) (int64, error) {
var size int64
err := m.QueryRow(fmt.Sprintf("SELECT SUM(data_length + index_length) FROM information_schema.tables WHERE table_schema = '%s'", name)).Scan(&size)
return size, err
}
func (m *MySQL) UserCreate(user, password string) error {
_, err := m.Exec(fmt.Sprintf("CREATE USER IF NOT EXISTS '%s'@'localhost' IDENTIFIED BY '%s'", user, password))
m.flushPrivileges()

View File

@@ -77,6 +77,23 @@ func (m *Postgres) DatabaseDrop(name string) error {
return err
}
func (m *Postgres) DatabaseExist(name string) (bool, error) {
var count int
if err := m.QueryRow("SELECT COUNT(*) FROM pg_database WHERE datname = $1", name).Scan(&count); err != nil {
return false, err
}
return count > 0, nil
}
func (m *Postgres) DatabaseSize(name string) (int64, error) {
query := fmt.Sprintf("SELECT pg_database_size('%s')", name)
var size int64
if err := m.QueryRow(query).Scan(&size); err != nil {
return 0, err
}
return size, nil
}
func (m *Postgres) UserCreate(user, password string) error {
_, err := m.Exec(fmt.Sprintf("CREATE USER %s WITH PASSWORD '%s'", user, password))
if err != nil {