diff options
| author | Joshua M. Boniface <joshua@boniface.me> | 2020-03-05 10:03:43 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-03-05 10:03:43 -0500 |
| commit | dcf3dbb2507f9e6a213b62b47cf8c327873f78b1 (patch) | |
| tree | 3022ca1868877ae01618a371e9489c6f9b39cc4a /Jellyfin.Server/CoreAppHost.cs | |
| parent | ca585f12b3297f58e8f490b03b64729716eb2f40 (diff) | |
| parent | 9eef0e8ca0e3359239ab68fcadbf2d65084f12e6 (diff) | |
Merge pull request #2515 from JustAMan/migration-scripts
Implement ability to run migration routines when updating Jellyfin
Diffstat (limited to 'Jellyfin.Server/CoreAppHost.cs')
| -rw-r--r-- | Jellyfin.Server/CoreAppHost.cs | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/Jellyfin.Server/CoreAppHost.cs b/Jellyfin.Server/CoreAppHost.cs index 8b4b61e29..cd5a2ce85 100644 --- a/Jellyfin.Server/CoreAppHost.cs +++ b/Jellyfin.Server/CoreAppHost.cs @@ -57,5 +57,33 @@ namespace Jellyfin.Server /// <inheritdoc /> protected override void ShutdownInternal() => Program.Shutdown(); + + /// <summary> + /// Runs the migration routines if necessary. + /// </summary> + public void TryMigrate() + { + var previousVersion = ConfigurationManager.CommonConfiguration.PreviousVersion; + switch (ApplicationVersion.CompareTo(previousVersion)) + { + case 1: + Logger.LogWarning("Version check shows Jellyfin was updated: previous version={0}, current version={1}", previousVersion, ApplicationVersion); + + Migrations.Run(this, Logger); + + ConfigurationManager.CommonConfiguration.PreviousVersion = ApplicationVersion; + ConfigurationManager.SaveConfiguration(); + break; + case 0: + // nothing to do, versions match + break; + case -1: + Logger.LogWarning("Version check shows Jellyfin was rolled back, use at your own risk: previous version={0}, current version={1}", previousVersion, ApplicationVersion); + // no "rollback" routines for now + ConfigurationManager.CommonConfiguration.PreviousVersion = ApplicationVersion; + ConfigurationManager.SaveConfiguration(); + break; + } + } } } |
