mirror of
https://github.com/Frooodle/Stirling-PDF.git
synced 2025-09-08 17:51:20 +02:00
feat(database): make backup schedule configurable via system keys (#4251)
This commit is contained in:
parent
528968bfe9
commit
8113728d3d
@ -5,7 +5,7 @@
|
|||||||
The newly introduced feature enhances the application with robust database backup and import capabilities. This feature is designed to ensure data integrity and provide a straightforward way to manage database backups. Here's how it works:
|
The newly introduced feature enhances the application with robust database backup and import capabilities. This feature is designed to ensure data integrity and provide a straightforward way to manage database backups. Here's how it works:
|
||||||
|
|
||||||
1. Automatic Backup Creation
|
1. Automatic Backup Creation
|
||||||
- The system automatically creates a database backup every day at midnight. This ensures that there is always a recent backup available, minimizing the risk of data loss.
|
- The system automatically creates a database backup on a configurable schedule (default: daily at midnight via `system.databaseBackup.cron`). This ensures that there is always a recent backup available, minimizing the risk of data loss.
|
||||||
2. Manual Backup Export
|
2. Manual Backup Export
|
||||||
- Admin actions that modify the user database trigger a manual export of the database. This keeps the backup up-to-date with the latest changes and provides an extra layer of data security.
|
- Admin actions that modify the user database trigger a manual export of the database. This keeps the backup up-to-date with the latest changes and provides an extra layer of data security.
|
||||||
3. Importing Database Backups
|
3. Importing Database Backups
|
||||||
|
@ -329,12 +329,18 @@ public class ApplicationProperties {
|
|||||||
private CustomPaths customPaths = new CustomPaths();
|
private CustomPaths customPaths = new CustomPaths();
|
||||||
private String fileUploadLimit;
|
private String fileUploadLimit;
|
||||||
private TempFileManagement tempFileManagement = new TempFileManagement();
|
private TempFileManagement tempFileManagement = new TempFileManagement();
|
||||||
|
private DatabaseBackup databaseBackup = new DatabaseBackup();
|
||||||
|
|
||||||
public boolean isAnalyticsEnabled() {
|
public boolean isAnalyticsEnabled() {
|
||||||
return this.getEnableAnalytics() != null && this.getEnableAnalytics();
|
return this.getEnableAnalytics() != null && this.getEnableAnalytics();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public static class DatabaseBackup {
|
||||||
|
private String cron = "0 0 0 * * ?"; // daily at midnight
|
||||||
|
}
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public static class CustomPaths {
|
public static class CustomPaths {
|
||||||
private Pipeline pipeline = new Pipeline();
|
private Pipeline pipeline = new Pipeline();
|
||||||
|
@ -151,6 +151,8 @@ system:
|
|||||||
cleanupIntervalMinutes: 30 # How often to run cleanup (in minutes)
|
cleanupIntervalMinutes: 30 # How often to run cleanup (in minutes)
|
||||||
startupCleanup: true # Clean up old temp files on startup
|
startupCleanup: true # Clean up old temp files on startup
|
||||||
cleanupSystemTemp: false # Whether to clean broader system temp directory
|
cleanupSystemTemp: false # Whether to clean broader system temp directory
|
||||||
|
databaseBackup:
|
||||||
|
cron: '0 0 0 * * ?' # Cron expression for automatic database backups "0 0 0 * * ?" daily at midnight
|
||||||
|
|
||||||
ui:
|
ui:
|
||||||
appName: '' # application's visible name
|
appName: '' # application's visible name
|
||||||
|
@ -18,7 +18,7 @@ public class ScheduledTasks {
|
|||||||
|
|
||||||
private final DatabaseServiceInterface databaseService;
|
private final DatabaseServiceInterface databaseService;
|
||||||
|
|
||||||
@Scheduled(cron = "0 0 0 * * ?")
|
@Scheduled(cron = "#{applicationProperties.system.databaseBackup.cron}")
|
||||||
public void performBackup() throws SQLException, UnsupportedProviderException {
|
public void performBackup() throws SQLException, UnsupportedProviderException {
|
||||||
databaseService.exportDatabase();
|
databaseService.exportDatabase();
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user