Skip to content

Commit d54043d

Browse files
committed
use the same timestring for all backups created by bulk backup creation
1 parent 4a96fc1 commit d54043d

File tree

2 files changed

+13
-12
lines changed

2 files changed

+13
-12
lines changed

server/src/main/java/io/github/mucsi96/postgresbackuptool/controller/BackupController.java

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import java.io.File;
44
import java.io.IOException;
55
import java.time.Instant;
6+
import java.time.format.DateTimeFormatter;
67
import java.util.List;
78
import java.util.Optional;
89

@@ -34,22 +35,27 @@
3435
public class BackupController {
3536
private final BackupService backupService;
3637
private final DatabaseService databaseService;
38+
private final DateTimeFormatter dateTimeFormatter;
3739

3840
@PreAuthorize("hasAuthority('APPROLE_DatabaseBackupCreator') and hasAuthority('SCOPE_createBackup')")
3941
@PostMapping("/backup")
4042
@ResponseBody
4143
void create(
4244
@RequestParam("retention_period") @Min(1) @Max(356) int retentionPeriod)
4345
throws IOException, InterruptedException {
46+
47+
String timeString = dateTimeFormatter.format(Instant.now());
4448
databaseService.getDatabases().forEach(databaseConfiguration -> {
4549
try {
4650
createDump(retentionPeriod, databaseConfiguration.getName(),
4751
databaseConfiguration.getPrefix(),
48-
databaseConfiguration.getDumpFormat().getValue());
52+
databaseConfiguration.getDumpFormat().getValue(),
53+
timeString);
4954

5055
if (databaseConfiguration.isCreatePlainDump()) {
5156
createDump(retentionPeriod, databaseConfiguration.getName(),
52-
databaseConfiguration.getPrefix(), "plain");
57+
databaseConfiguration.getPrefix(), "plain",
58+
timeString);
5359
}
5460
} catch (IOException | InterruptedException e) {
5561
throw new RuntimeException(e);
@@ -58,9 +64,10 @@ void create(
5864
}
5965

6066
private void createDump(int retentionPeriod, String name, String prefix,
61-
String dumpFormat) throws IOException, InterruptedException {
67+
String dumpFormat, String timeString)
68+
throws IOException, InterruptedException {
6269
File dumpFile = databaseService.createDump(name, retentionPeriod,
63-
dumpFormat);
70+
dumpFormat, timeString);
6471
backupService.createBackup(prefix, dumpFile);
6572

6673
dumpFile.delete();

server/src/main/java/io/github/mucsi96/postgresbackuptool/service/DatabaseService.java

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33
import java.io.File;
44
import java.io.IOException;
55
import java.nio.file.Paths;
6-
import java.time.Instant;
7-
import java.time.format.DateTimeFormatter;
86
import java.util.Arrays;
97
import java.util.List;
108
import java.util.Map;
@@ -28,18 +26,15 @@
2826

2927
@Service
3028
public class DatabaseService {
31-
private final DateTimeFormatter dateTimeFormatter;
3229
private final List<DatabaseConfiguration> databases;
3330

3431
public DatabaseService(
35-
@Value("${databasesConfigPath}") String databasesConfigPath,
36-
DateTimeFormatter dateTimeFormatter)
32+
@Value("${databasesConfigPath}") String databasesConfigPath)
3733
throws StreamReadException, DatabindException, IOException {
3834
this.databases = Arrays
3935
.asList(new ObjectMapper().registerModule(new Jdk8Module())
4036
.readValue(Paths.get(databasesConfigPath).toFile(),
4137
DatabaseConfiguration[].class));
42-
this.dateTimeFormatter = dateTimeFormatter;
4338
}
4439

4540
public List<DatabaseConfiguration> getDatabases() {
@@ -84,10 +79,9 @@ public DatabaseInfo getDatabaseInfo(String databaseName) {
8479
}
8580

8681
public File createDump(String databaseName, int retentionPeriod,
87-
String format) throws IOException, InterruptedException {
82+
String format, String timeString) throws IOException, InterruptedException {
8883
DatabaseConfiguration databaseConfiguration = getDatabaseConfiguration(
8984
databaseName);
90-
String timeString = dateTimeFormatter.format(Instant.now());
9185
String filename = String.format("%s.%s.%s.%s", timeString,
9286
getDatabaseInfo(databaseName).getTotalRowCount(),
9387
retentionPeriod, "plain".equals(format) ? "sql" : "pgdump");

0 commit comments

Comments
 (0)