mirror of
https://github.com/acepanel/panel.git
synced 2026-02-04 07:57:21 +08:00
refactor: 备份重构
This commit is contained in:
@@ -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()
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user