mirror of https://github.com/go-gitea/gitea.git
Backport #30613 by @kemzeb Attempts to resolve #28720. Co-authored-by: Kemal Zebari <60799661+kemzeb@users.noreply.github.com>
This commit is contained in:
parent
fc376c863a
commit
5dbe7496c7
62
cmd/dump.go
62
cmd/dump.go
|
@ -87,6 +87,10 @@ var CmdDump = &cli.Command{
|
||||||
Name: "skip-index",
|
Name: "skip-index",
|
||||||
Usage: "Skip bleve index data",
|
Usage: "Skip bleve index data",
|
||||||
},
|
},
|
||||||
|
&cli.BoolFlag{
|
||||||
|
Name: "skip-db",
|
||||||
|
Usage: "Skip database",
|
||||||
|
},
|
||||||
&cli.StringFlag{
|
&cli.StringFlag{
|
||||||
Name: "type",
|
Name: "type",
|
||||||
Usage: fmt.Sprintf(`Dump output format, default to "zip", supported types: %s`, strings.Join(dump.SupportedOutputTypes, ", ")),
|
Usage: fmt.Sprintf(`Dump output format, default to "zip", supported types: %s`, strings.Join(dump.SupportedOutputTypes, ", ")),
|
||||||
|
@ -185,35 +189,41 @@ func runDump(ctx *cli.Context) error {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
tmpDir := ctx.String("tempdir")
|
if ctx.Bool("skip-db") {
|
||||||
if _, err := os.Stat(tmpDir); os.IsNotExist(err) {
|
// Ensure that we don't dump the database file that may reside in setting.AppDataPath or elsewhere.
|
||||||
fatal("Path does not exist: %s", tmpDir)
|
dumper.GlobalExcludeAbsPath(setting.Database.Path)
|
||||||
}
|
log.Info("Skipping database")
|
||||||
|
|
||||||
dbDump, err := os.CreateTemp(tmpDir, "gitea-db.sql")
|
|
||||||
if err != nil {
|
|
||||||
fatal("Failed to create tmp file: %v", err)
|
|
||||||
}
|
|
||||||
defer func() {
|
|
||||||
_ = dbDump.Close()
|
|
||||||
if err := util.Remove(dbDump.Name()); err != nil {
|
|
||||||
log.Warn("Unable to remove temporary file: %s: Error: %v", dbDump.Name(), err)
|
|
||||||
}
|
|
||||||
}()
|
|
||||||
|
|
||||||
targetDBType := ctx.String("database")
|
|
||||||
if len(targetDBType) > 0 && targetDBType != setting.Database.Type.String() {
|
|
||||||
log.Info("Dumping database %s => %s...", setting.Database.Type, targetDBType)
|
|
||||||
} else {
|
} else {
|
||||||
log.Info("Dumping database...")
|
tmpDir := ctx.String("tempdir")
|
||||||
}
|
if _, err := os.Stat(tmpDir); os.IsNotExist(err) {
|
||||||
|
fatal("Path does not exist: %s", tmpDir)
|
||||||
|
}
|
||||||
|
|
||||||
if err := db.DumpDatabase(dbDump.Name(), targetDBType); err != nil {
|
dbDump, err := os.CreateTemp(tmpDir, "gitea-db.sql")
|
||||||
fatal("Failed to dump database: %v", err)
|
if err != nil {
|
||||||
}
|
fatal("Failed to create tmp file: %v", err)
|
||||||
|
}
|
||||||
|
defer func() {
|
||||||
|
_ = dbDump.Close()
|
||||||
|
if err := util.Remove(dbDump.Name()); err != nil {
|
||||||
|
log.Warn("Unable to remove temporary file: %s: Error: %v", dbDump.Name(), err)
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
|
||||||
if err = dumper.AddFile("gitea-db.sql", dbDump.Name()); err != nil {
|
targetDBType := ctx.String("database")
|
||||||
fatal("Failed to include gitea-db.sql: %v", err)
|
if len(targetDBType) > 0 && targetDBType != setting.Database.Type.String() {
|
||||||
|
log.Info("Dumping database %s => %s...", setting.Database.Type, targetDBType)
|
||||||
|
} else {
|
||||||
|
log.Info("Dumping database...")
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := db.DumpDatabase(dbDump.Name(), targetDBType); err != nil {
|
||||||
|
fatal("Failed to dump database: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err = dumper.AddFile("gitea-db.sql", dbDump.Name()); err != nil {
|
||||||
|
fatal("Failed to include gitea-db.sql: %v", err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
log.Info("Adding custom configuration file from %s", setting.CustomConf)
|
log.Info("Adding custom configuration file from %s", setting.CustomConf)
|
||||||
|
|
Loading…
Reference in New Issue