Files
duplicati/Duplicati/GUI/Datamodel/Database schema/4. Support for setting controls.sql
T
kenneth@hexad.dk a60bd9511f Large refactoring, removing duplicate code in the former Duplicati gui, because it is now hosted in the server.
Not 100% tested, because it is supposed to go away soon, but right now it is the only way to create a new backup.
Also moved database schema and upgrade information/code into the data model project.

git-svn-id: https://duplicati.googlecode.com/svn/trunk@1275 59da171f-624f-0410-aa54-27559c288bec
2012-05-14 18:53:07 +00:00

66 lines
2.8 KiB
SQL

-- Refactor the GPGEncryption column to now use EncryptionModule instead
ALTER TABLE "Task" ADD COLUMN "EncryptionModule" TEXT NULL;
ALTER TABLE "Task" ADD COLUMN "CompressionModule" TEXT NULL;
UPDATE "Task" SET "EncryptionModule"="aes";
UPDATE "Task" SET "EncryptionModule"="gpg" WHERE "GPGEncryption" = 1;
-- Create a reduced Task table
CREATE TABLE "TempTask" (
"ID" INTEGER PRIMARY KEY,
"ScheduleID" INTEGER NULL,
"Service" TEXT NULL,
"Encryptionkey" TEXT NULL,
"Signaturekey" TEXT NULL,
"SourcePath" TEXT NULL,
"KeepFull" INTEGER NULL,
"KeepTime" TEXT NULL,
"FullAfter" TEXT NULL,
"EncryptionModule" TEXT NULL,
"CompressionModule" TEXT NULL,
"IncludeSetup" BOOLEAN NULL
);
INSERT INTO TempTask ([ID], [ScheduleID], [Service], [EncryptionKey], [SignatureKey], [SourcePath], [KeepFull], [KeepTime], [FullAfter], [EncryptionModule], [CompressionModule], [IncludeSetup]) SELECT [ID], [ScheduleID], [Service], [EncryptionKey], [SignatureKey], [SourcePath], [KeepFull], [KeepTime], [FullAfter], [EncryptionModule], [CompressionModule], [IncludeSetup] FROM Task;
DROP TABLE "Task";
ALTER TABLE "TempTask" RENAME TO "Task";
-- SettingExtension is now supported
CREATE TABLE "SettingExtension" (
"ID" INTEGER PRIMARY KEY,
"SettingKey" TEXT NULL,
"Name" TEXT NULL,
"Value" TEXT NULL
);
-- Add the compression setting table
CREATE TABLE "CompressionSetting" (
"ID" INTEGER PRIMARY KEY,
"TaskID" INTEGER NULL,
"Name" TEXT NULL,
"Value" TEXT NULL
);
-- Add the encryption setting table
CREATE TABLE "EncryptionSetting" (
"ID" INTEGER PRIMARY KEY,
"TaskID" INTEGER NULL,
"Name" TEXT NULL,
"Value" TEXT NULL
);
-- Use the GPG indicator to set the compression module value
UPDATE "ApplicationSetting" SET [Name] = "Encryption module used with common password" WHERE [Name] LIKE "Use PGP with common password";
UPDATE "ApplicationSetting" SET [Value] = "aes" WHERE [Name] LIKE "Encryption module used with common password" AND [Value] LIKE "False";
UPDATE "ApplicationSetting" SET [Value] = "gpg" WHERE [Name] LIKE "Encryption module used with common password" AND [Value] LIKE "True";
-- Move the SFTP path into the controls settings, instead of the application settings
INSERT INTO "SettingExtension" ([SettingKey], [Name], [Value]) SELECT "ssh-settings", [Name], [Value] FROM "ApplicationSetting" WHERE [Name] LIKE "SFTP Path";
DELETE FROM "ApplicationSetting" WHERE [Name] LIKE "SFTP Path";
-- Move the GPG path into the controls settings, instead of the application settings, fixing the PGP -> GPG mistake on the way
INSERT INTO "SettingExtension" ([SettingKey], [Name], [Value]) SELECT "gpg-settings", "GPG Path", [Value] FROM "ApplicationSetting" WHERE [Name] LIKE "PGP Path";
DELETE FROM "ApplicationSetting" WHERE [Name] LIKE "PGP Path";
VACUUM;