mirror of
https://github.com/databasus/databasus.git
synced 2026-04-06 00:32:03 +02:00
Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e41f58d63b | ||
|
|
c04ab37962 | ||
|
|
c0756cdcd3 |
6
.github/workflows/ci-release.yml
vendored
6
.github/workflows/ci-release.yml
vendored
@@ -220,7 +220,7 @@ jobs:
|
||||
TEST_MONGODB_50_PORT=27050
|
||||
TEST_MONGODB_60_PORT=27060
|
||||
TEST_MONGODB_70_PORT=27070
|
||||
TEST_MONGODB_80_PORT=27080
|
||||
TEST_MONGODB_82_PORT=27082
|
||||
EOF
|
||||
|
||||
- name: Start test containers
|
||||
@@ -300,8 +300,8 @@ jobs:
|
||||
timeout 120 bash -c 'until docker exec test-mongodb-60 mongosh --eval "db.adminCommand(\"ping\")" -u root -p rootpassword --authenticationDatabase admin 2>/dev/null; do sleep 2; done'
|
||||
echo "Waiting for MongoDB 7.0..."
|
||||
timeout 120 bash -c 'until docker exec test-mongodb-70 mongosh --eval "db.adminCommand(\"ping\")" -u root -p rootpassword --authenticationDatabase admin 2>/dev/null; do sleep 2; done'
|
||||
echo "Waiting for MongoDB 8.0..."
|
||||
timeout 120 bash -c 'until docker exec test-mongodb-80 mongosh --eval "db.adminCommand(\"ping\")" -u root -p rootpassword --authenticationDatabase admin 2>/dev/null; do sleep 2; done'
|
||||
echo "Waiting for MongoDB 8.2..."
|
||||
timeout 120 bash -c 'until docker exec test-mongodb-82 mongosh --eval "db.adminCommand(\"ping\")" -u root -p rootpassword --authenticationDatabase admin 2>/dev/null; do sleep 2; done'
|
||||
|
||||
- name: Create data and temp directories
|
||||
run: |
|
||||
|
||||
@@ -29,5 +29,5 @@ keywords:
|
||||
- system-administration
|
||||
- database-backup
|
||||
license: Apache-2.0
|
||||
version: 2.14.0
|
||||
date-released: "2025-12-22"
|
||||
version: 2.15.0
|
||||
date-released: "2025-12-24"
|
||||
|
||||
31
README.md
31
README.md
@@ -1,18 +1,22 @@
|
||||
<div align="center">
|
||||
<img src="assets/logo.svg" style="margin-bottom: 20px;" alt="Postgresus Logo" width="250"/>
|
||||
|
||||
<h3>PostgreSQL Backup</h3>
|
||||
<p>A free, open source and self-hosted solution for automated PostgreSQL backups with multiple storage options and notifications.</p>
|
||||
<h3>Databases backup tool for PostgreSQL, MySQL and MongoDB</h3>
|
||||
<p>Postgresus is a free, open source and self-hosted tool to backup databases. Make backups with different storages (S3, Google Drive, FTP, etc.) and notifications about progress (Slack, Discord, Telegram, etc.)</p>
|
||||
|
||||
<!-- Badges -->
|
||||
[](https://www.postgresql.org/)
|
||||
[](https://www.mysql.com/)
|
||||
[](https://mariadb.org/)
|
||||
[](https://www.mongodb.com/)
|
||||
<br />
|
||||
[](LICENSE)
|
||||
[](https://hub.docker.com/r/rostislavdugin/postgresus)
|
||||
[](https://github.com/RostislavDugin/postgresus)
|
||||
|
||||
[](https://www.postgresql.org/)
|
||||
[](https://github.com/RostislavDugin/postgresus)
|
||||
[](https://github.com/RostislavDugin/postgresus)
|
||||
|
||||
|
||||
|
||||
<p>
|
||||
<a href="#-features">Features</a> •
|
||||
<a href="#-installation">Installation</a> •
|
||||
@@ -36,6 +40,13 @@
|
||||
|
||||
## ✨ Features
|
||||
|
||||
### 💾 **Supported databases**
|
||||
|
||||
- **PostgreSQL**: 12, 13, 14, 15, 16, 17 and 18
|
||||
- **MySQL**: 5.7, 8 and 9
|
||||
- **MariaDB**: 10 and 11
|
||||
- **MongoDB**: 4, 5, 6, 7 and 8
|
||||
|
||||
### 🔄 **Scheduled backups**
|
||||
|
||||
- **Flexible scheduling**: hourly, daily, weekly, monthly or cron
|
||||
@@ -54,12 +65,6 @@
|
||||
- **Real-time updates**: Success and failure notifications
|
||||
- **Team integration**: Perfect for DevOps workflows
|
||||
|
||||
### 🐘 **PostgreSQL support**
|
||||
|
||||
- **Multiple versions**: PostgreSQL 12, 13, 14, 15, 16, 17 and 18
|
||||
- **SSL support**: Secure connections available
|
||||
- **Easy restoration**: One-click restore from any backup
|
||||
|
||||
### 🔒 **Enterprise-grade security** <a href="https://postgresus.com/security">(docs)</a>
|
||||
|
||||
- **AES-256-GCM encryption**: Enterprise-grade protection for backup files
|
||||
@@ -128,7 +133,7 @@ sudo curl -sSL https://raw.githubusercontent.com/RostislavDugin/postgresus/refs/
|
||||
|
||||
### Option 2: Simple Docker run
|
||||
|
||||
The easiest way to run Postgresus with embedded PostgreSQL:
|
||||
The easiest way to run Postgresus:
|
||||
|
||||
```bash
|
||||
docker run -d \
|
||||
@@ -214,7 +219,7 @@ For more options (NodePort, TLS, HTTPRoute for Gateway API), see the [Helm chart
|
||||
1. **Access the dashboard**: Navigate to `http://localhost:4005`
|
||||
2. **Add your first database for backup**: Click "New Database" and follow the setup wizard
|
||||
3. **Configure schedule**: Choose from hourly, daily, weekly, monthly or cron intervals
|
||||
4. **Set database connection**: Enter your PostgreSQL credentials and connection details
|
||||
4. **Set database connection**: Enter your database credentials and connection details
|
||||
5. **Choose storage**: Select where to store your backups (local, S3, Google Drive, etc.)
|
||||
6. **Add notifications** (optional): Configure email, Telegram, Slack, or webhook notifications
|
||||
7. **Save and start**: Postgresus will validate settings and begin the backup schedule
|
||||
|
||||
@@ -67,4 +67,4 @@ TEST_MONGODB_44_PORT=27044
|
||||
TEST_MONGODB_50_PORT=27050
|
||||
TEST_MONGODB_60_PORT=27060
|
||||
TEST_MONGODB_70_PORT=27070
|
||||
TEST_MONGODB_80_PORT=27080
|
||||
TEST_MONGODB_82_PORT=27082
|
||||
@@ -539,11 +539,11 @@ services:
|
||||
timeout: 5s
|
||||
retries: 10
|
||||
|
||||
test-mongodb-80:
|
||||
image: mongo:8.0
|
||||
container_name: test-mongodb-80
|
||||
test-mongodb-82:
|
||||
image: mongo:8.2.3-noble
|
||||
container_name: test-mongodb-82
|
||||
ports:
|
||||
- "${TEST_MONGODB_80_PORT:-27080}:27017"
|
||||
- "${TEST_MONGODB_82_PORT:-27082}:27017"
|
||||
environment:
|
||||
MONGO_INITDB_ROOT_USERNAME: root
|
||||
MONGO_INITDB_ROOT_PASSWORD: rootpassword
|
||||
|
||||
@@ -77,7 +77,7 @@ type EnvVariables struct {
|
||||
TestMongodb50Port string `env:"TEST_MONGODB_50_PORT"`
|
||||
TestMongodb60Port string `env:"TEST_MONGODB_60_PORT"`
|
||||
TestMongodb70Port string `env:"TEST_MONGODB_70_PORT"`
|
||||
TestMongodb80Port string `env:"TEST_MONGODB_80_PORT"`
|
||||
TestMongodb82Port string `env:"TEST_MONGODB_82_PORT"`
|
||||
|
||||
// oauth
|
||||
GitHubClientID string `env:"GITHUB_CLIENT_ID"`
|
||||
|
||||
@@ -953,7 +953,7 @@ func Test_DatabaseSensitiveDataLifecycle_AllTypes(t *testing.T) {
|
||||
Name: "Test MongoDB Database",
|
||||
Type: DatabaseTypeMongodb,
|
||||
Mongodb: &mongodb.MongodbDatabase{
|
||||
Version: tools.MongodbVersion70,
|
||||
Version: tools.MongodbVersion7,
|
||||
Host: "localhost",
|
||||
Port: 27017,
|
||||
Username: "root",
|
||||
@@ -971,7 +971,7 @@ func Test_DatabaseSensitiveDataLifecycle_AllTypes(t *testing.T) {
|
||||
Name: "Updated MongoDB Database",
|
||||
Type: DatabaseTypeMongodb,
|
||||
Mongodb: &mongodb.MongodbDatabase{
|
||||
Version: tools.MongodbVersion80,
|
||||
Version: tools.MongodbVersion8,
|
||||
Host: "updated-host",
|
||||
Port: 27018,
|
||||
Username: "updated_user",
|
||||
|
||||
@@ -381,35 +381,29 @@ func detectMongodbVersion(ctx context.Context, client *mongo.Client) (tools.Mong
|
||||
return "", errors.New("could not parse MongoDB version from buildInfo")
|
||||
}
|
||||
|
||||
re := regexp.MustCompile(`^(\d+)\.(\d+)`)
|
||||
re := regexp.MustCompile(`^(\d+)\.`)
|
||||
matches := re.FindStringSubmatch(versionStr)
|
||||
if len(matches) < 3 {
|
||||
if len(matches) < 2 {
|
||||
return "", fmt.Errorf("could not parse MongoDB version: %s", versionStr)
|
||||
}
|
||||
|
||||
major := matches[1]
|
||||
minor := matches[2]
|
||||
versionKey := fmt.Sprintf("%s.%s", major, minor)
|
||||
|
||||
switch versionKey {
|
||||
case "4.0":
|
||||
return tools.MongodbVersion40, nil
|
||||
case "4.2":
|
||||
return tools.MongodbVersion42, nil
|
||||
case "4.4":
|
||||
return tools.MongodbVersion44, nil
|
||||
case "5.0":
|
||||
return tools.MongodbVersion50, nil
|
||||
case "6.0":
|
||||
return tools.MongodbVersion60, nil
|
||||
case "7.0":
|
||||
return tools.MongodbVersion70, nil
|
||||
case "8.0":
|
||||
return tools.MongodbVersion80, nil
|
||||
switch major {
|
||||
case "4":
|
||||
return tools.MongodbVersion4, nil
|
||||
case "5":
|
||||
return tools.MongodbVersion5, nil
|
||||
case "6":
|
||||
return tools.MongodbVersion6, nil
|
||||
case "7":
|
||||
return tools.MongodbVersion7, nil
|
||||
case "8":
|
||||
return tools.MongodbVersion8, nil
|
||||
default:
|
||||
return "", fmt.Errorf(
|
||||
"unsupported MongoDB version: %s (supported: 4.0, 4.2, 4.4, 5.0, 6.0, 7.0, 8.0)",
|
||||
versionKey,
|
||||
"unsupported MongoDB major version: %s (supported: 4.x, 5.x, 6.x, 7.x, 8.x)",
|
||||
major,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,13 +26,13 @@ func Test_IsUserReadOnly_AdminUser_ReturnsFalse(t *testing.T) {
|
||||
version tools.MongodbVersion
|
||||
port string
|
||||
}{
|
||||
{"MongoDB 4.0", tools.MongodbVersion40, env.TestMongodb40Port},
|
||||
{"MongoDB 4.2", tools.MongodbVersion42, env.TestMongodb42Port},
|
||||
{"MongoDB 4.4", tools.MongodbVersion44, env.TestMongodb44Port},
|
||||
{"MongoDB 5.0", tools.MongodbVersion50, env.TestMongodb50Port},
|
||||
{"MongoDB 6.0", tools.MongodbVersion60, env.TestMongodb60Port},
|
||||
{"MongoDB 7.0", tools.MongodbVersion70, env.TestMongodb70Port},
|
||||
{"MongoDB 8.0", tools.MongodbVersion80, env.TestMongodb80Port},
|
||||
{"MongoDB 4.0", tools.MongodbVersion4, env.TestMongodb40Port},
|
||||
{"MongoDB 4.2", tools.MongodbVersion4, env.TestMongodb42Port},
|
||||
{"MongoDB 4.4", tools.MongodbVersion4, env.TestMongodb44Port},
|
||||
{"MongoDB 5.0", tools.MongodbVersion5, env.TestMongodb50Port},
|
||||
{"MongoDB 6.0", tools.MongodbVersion6, env.TestMongodb60Port},
|
||||
{"MongoDB 7.0", tools.MongodbVersion7, env.TestMongodb70Port},
|
||||
{"MongoDB 8.2", tools.MongodbVersion8, env.TestMongodb82Port},
|
||||
}
|
||||
|
||||
for _, tc := range cases {
|
||||
@@ -60,13 +60,13 @@ func Test_CreateReadOnlyUser_UserCanReadButNotWrite(t *testing.T) {
|
||||
version tools.MongodbVersion
|
||||
port string
|
||||
}{
|
||||
{"MongoDB 4.0", tools.MongodbVersion40, env.TestMongodb40Port},
|
||||
{"MongoDB 4.2", tools.MongodbVersion42, env.TestMongodb42Port},
|
||||
{"MongoDB 4.4", tools.MongodbVersion44, env.TestMongodb44Port},
|
||||
{"MongoDB 5.0", tools.MongodbVersion50, env.TestMongodb50Port},
|
||||
{"MongoDB 6.0", tools.MongodbVersion60, env.TestMongodb60Port},
|
||||
{"MongoDB 7.0", tools.MongodbVersion70, env.TestMongodb70Port},
|
||||
{"MongoDB 8.0", tools.MongodbVersion80, env.TestMongodb80Port},
|
||||
{"MongoDB 4.0", tools.MongodbVersion4, env.TestMongodb40Port},
|
||||
{"MongoDB 4.2", tools.MongodbVersion4, env.TestMongodb42Port},
|
||||
{"MongoDB 4.4", tools.MongodbVersion4, env.TestMongodb44Port},
|
||||
{"MongoDB 5.0", tools.MongodbVersion5, env.TestMongodb50Port},
|
||||
{"MongoDB 6.0", tools.MongodbVersion6, env.TestMongodb60Port},
|
||||
{"MongoDB 7.0", tools.MongodbVersion7, env.TestMongodb70Port},
|
||||
{"MongoDB 8.2", tools.MongodbVersion8, env.TestMongodb82Port},
|
||||
}
|
||||
|
||||
for _, tc := range cases {
|
||||
@@ -139,7 +139,7 @@ func Test_CreateReadOnlyUser_UserCanReadButNotWrite(t *testing.T) {
|
||||
|
||||
func Test_ReadOnlyUser_FutureCollections_CanSelect(t *testing.T) {
|
||||
env := config.GetEnv()
|
||||
container := connectToMongodbContainer(t, env.TestMongodb70Port, tools.MongodbVersion70)
|
||||
container := connectToMongodbContainer(t, env.TestMongodb70Port, tools.MongodbVersion7)
|
||||
defer container.Client.Disconnect(context.Background())
|
||||
|
||||
ctx := context.Background()
|
||||
@@ -170,7 +170,7 @@ func Test_ReadOnlyUser_FutureCollections_CanSelect(t *testing.T) {
|
||||
|
||||
func Test_ReadOnlyUser_CannotDropOrModifyCollections(t *testing.T) {
|
||||
env := config.GetEnv()
|
||||
container := connectToMongodbContainer(t, env.TestMongodb70Port, tools.MongodbVersion70)
|
||||
container := connectToMongodbContainer(t, env.TestMongodb70Port, tools.MongodbVersion7)
|
||||
defer container.Client.Disconnect(context.Background())
|
||||
|
||||
ctx := context.Background()
|
||||
|
||||
@@ -59,13 +59,13 @@ func Test_BackupAndRestoreMongodb_RestoreIsSuccessful(t *testing.T) {
|
||||
version tools.MongodbVersion
|
||||
port string
|
||||
}{
|
||||
{"MongoDB 4.0", tools.MongodbVersion40, env.TestMongodb40Port},
|
||||
{"MongoDB 4.2", tools.MongodbVersion42, env.TestMongodb42Port},
|
||||
{"MongoDB 4.4", tools.MongodbVersion44, env.TestMongodb44Port},
|
||||
{"MongoDB 5.0", tools.MongodbVersion50, env.TestMongodb50Port},
|
||||
{"MongoDB 6.0", tools.MongodbVersion60, env.TestMongodb60Port},
|
||||
{"MongoDB 7.0", tools.MongodbVersion70, env.TestMongodb70Port},
|
||||
{"MongoDB 8.0", tools.MongodbVersion80, env.TestMongodb80Port},
|
||||
{"MongoDB 4.0", tools.MongodbVersion4, env.TestMongodb40Port},
|
||||
{"MongoDB 4.2", tools.MongodbVersion4, env.TestMongodb42Port},
|
||||
{"MongoDB 4.4", tools.MongodbVersion4, env.TestMongodb44Port},
|
||||
{"MongoDB 5.0", tools.MongodbVersion5, env.TestMongodb50Port},
|
||||
{"MongoDB 6.0", tools.MongodbVersion6, env.TestMongodb60Port},
|
||||
{"MongoDB 7.0", tools.MongodbVersion7, env.TestMongodb70Port},
|
||||
{"MongoDB 8.2", tools.MongodbVersion8, env.TestMongodb82Port},
|
||||
}
|
||||
|
||||
for _, tc := range cases {
|
||||
@@ -83,13 +83,13 @@ func Test_BackupAndRestoreMongodbWithEncryption_RestoreIsSuccessful(t *testing.T
|
||||
version tools.MongodbVersion
|
||||
port string
|
||||
}{
|
||||
{"MongoDB 4.0", tools.MongodbVersion40, env.TestMongodb40Port},
|
||||
{"MongoDB 4.2", tools.MongodbVersion42, env.TestMongodb42Port},
|
||||
{"MongoDB 4.4", tools.MongodbVersion44, env.TestMongodb44Port},
|
||||
{"MongoDB 5.0", tools.MongodbVersion50, env.TestMongodb50Port},
|
||||
{"MongoDB 6.0", tools.MongodbVersion60, env.TestMongodb60Port},
|
||||
{"MongoDB 7.0", tools.MongodbVersion70, env.TestMongodb70Port},
|
||||
{"MongoDB 8.0", tools.MongodbVersion80, env.TestMongodb80Port},
|
||||
{"MongoDB 4.0", tools.MongodbVersion4, env.TestMongodb40Port},
|
||||
{"MongoDB 4.2", tools.MongodbVersion4, env.TestMongodb42Port},
|
||||
{"MongoDB 4.4", tools.MongodbVersion4, env.TestMongodb44Port},
|
||||
{"MongoDB 5.0", tools.MongodbVersion5, env.TestMongodb50Port},
|
||||
{"MongoDB 6.0", tools.MongodbVersion6, env.TestMongodb60Port},
|
||||
{"MongoDB 7.0", tools.MongodbVersion7, env.TestMongodb70Port},
|
||||
{"MongoDB 8.2", tools.MongodbVersion8, env.TestMongodb82Port},
|
||||
}
|
||||
|
||||
for _, tc := range cases {
|
||||
@@ -107,13 +107,13 @@ func Test_BackupAndRestoreMongodb_WithReadOnlyUser_RestoreIsSuccessful(t *testin
|
||||
version tools.MongodbVersion
|
||||
port string
|
||||
}{
|
||||
{"MongoDB 4.0", tools.MongodbVersion40, env.TestMongodb40Port},
|
||||
{"MongoDB 4.2", tools.MongodbVersion42, env.TestMongodb42Port},
|
||||
{"MongoDB 4.4", tools.MongodbVersion44, env.TestMongodb44Port},
|
||||
{"MongoDB 5.0", tools.MongodbVersion50, env.TestMongodb50Port},
|
||||
{"MongoDB 6.0", tools.MongodbVersion60, env.TestMongodb60Port},
|
||||
{"MongoDB 7.0", tools.MongodbVersion70, env.TestMongodb70Port},
|
||||
{"MongoDB 8.0", tools.MongodbVersion80, env.TestMongodb80Port},
|
||||
{"MongoDB 4.0", tools.MongodbVersion4, env.TestMongodb40Port},
|
||||
{"MongoDB 4.2", tools.MongodbVersion4, env.TestMongodb42Port},
|
||||
{"MongoDB 4.4", tools.MongodbVersion4, env.TestMongodb44Port},
|
||||
{"MongoDB 5.0", tools.MongodbVersion5, env.TestMongodb50Port},
|
||||
{"MongoDB 6.0", tools.MongodbVersion6, env.TestMongodb60Port},
|
||||
{"MongoDB 7.0", tools.MongodbVersion7, env.TestMongodb70Port},
|
||||
{"MongoDB 8.2", tools.MongodbVersion8, env.TestMongodb82Port},
|
||||
}
|
||||
|
||||
for _, tc := range cases {
|
||||
|
||||
@@ -5,6 +5,7 @@ import (
|
||||
"log/slog"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"regexp"
|
||||
"runtime"
|
||||
|
||||
env_utils "postgresus-backend/internal/util/env"
|
||||
@@ -13,13 +14,11 @@ import (
|
||||
type MongodbVersion string
|
||||
|
||||
const (
|
||||
MongodbVersion40 MongodbVersion = "4.0"
|
||||
MongodbVersion42 MongodbVersion = "4.2"
|
||||
MongodbVersion44 MongodbVersion = "4.4"
|
||||
MongodbVersion50 MongodbVersion = "5.0"
|
||||
MongodbVersion60 MongodbVersion = "6.0"
|
||||
MongodbVersion70 MongodbVersion = "7.0"
|
||||
MongodbVersion80 MongodbVersion = "8.0"
|
||||
MongodbVersion4 MongodbVersion = "4"
|
||||
MongodbVersion5 MongodbVersion = "5"
|
||||
MongodbVersion6 MongodbVersion = "6"
|
||||
MongodbVersion7 MongodbVersion = "7"
|
||||
MongodbVersion8 MongodbVersion = "8"
|
||||
)
|
||||
|
||||
type MongodbExecutable string
|
||||
@@ -123,36 +122,38 @@ func IsMongodbBackupVersionHigherThanRestoreVersion(
|
||||
backupVersion, restoreVersion MongodbVersion,
|
||||
) bool {
|
||||
versionOrder := map[MongodbVersion]int{
|
||||
MongodbVersion40: 1,
|
||||
MongodbVersion42: 2,
|
||||
MongodbVersion44: 3,
|
||||
MongodbVersion50: 4,
|
||||
MongodbVersion60: 5,
|
||||
MongodbVersion70: 6,
|
||||
MongodbVersion80: 7,
|
||||
MongodbVersion4: 4,
|
||||
MongodbVersion5: 5,
|
||||
MongodbVersion6: 6,
|
||||
MongodbVersion7: 7,
|
||||
MongodbVersion8: 8,
|
||||
}
|
||||
return versionOrder[backupVersion] > versionOrder[restoreVersion]
|
||||
}
|
||||
|
||||
// GetMongodbVersionEnum converts a version string to MongodbVersion enum
|
||||
// GetMongodbVersionEnum converts a version string to MongodbVersion enum.
|
||||
// Accepts full version strings (e.g., "8.2", "5.0.1") and extracts the major version.
|
||||
func GetMongodbVersionEnum(version string) MongodbVersion {
|
||||
switch version {
|
||||
case "4.0":
|
||||
return MongodbVersion40
|
||||
case "4.2":
|
||||
return MongodbVersion42
|
||||
case "4.4":
|
||||
return MongodbVersion44
|
||||
case "5.0":
|
||||
return MongodbVersion50
|
||||
case "6.0":
|
||||
return MongodbVersion60
|
||||
case "7.0":
|
||||
return MongodbVersion70
|
||||
case "8.0":
|
||||
return MongodbVersion80
|
||||
re := regexp.MustCompile(`^(\d+)`)
|
||||
matches := re.FindStringSubmatch(version)
|
||||
if len(matches) < 2 {
|
||||
panic(fmt.Sprintf("invalid mongodb version format: %s", version))
|
||||
}
|
||||
|
||||
major := matches[1]
|
||||
switch major {
|
||||
case "4":
|
||||
return MongodbVersion4
|
||||
case "5":
|
||||
return MongodbVersion5
|
||||
case "6":
|
||||
return MongodbVersion6
|
||||
case "7":
|
||||
return MongodbVersion7
|
||||
case "8":
|
||||
return MongodbVersion8
|
||||
default:
|
||||
panic(fmt.Sprintf("invalid mongodb version: %s", version))
|
||||
panic(fmt.Sprintf("unsupported mongodb major version: %s", major))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user