aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/Persistence/SqliteExtensions.cs
diff options
context:
space:
mode:
authorLuke <luke.pulverenti@gmail.com>2015-03-19 13:21:35 -0400
committerLuke <luke.pulverenti@gmail.com>2015-03-19 13:21:35 -0400
commit9926be0d9de688c04065c916e44ada4177b38a80 (patch)
tree15338144a143948ffbee316641757e81489a7354 /MediaBrowser.Server.Implementations/Persistence/SqliteExtensions.cs
parentb756e677d733992c2033bdd369980a37e17609e4 (diff)
parent0564d454e5ad4f59702aa9022af6bb8fd064a9ff (diff)
Merge pull request #1043 from MediaBrowser/dev
3.0.5557.0
Diffstat (limited to 'MediaBrowser.Server.Implementations/Persistence/SqliteExtensions.cs')
-rw-r--r--MediaBrowser.Server.Implementations/Persistence/SqliteExtensions.cs34
1 files changed, 33 insertions, 1 deletions
diff --git a/MediaBrowser.Server.Implementations/Persistence/SqliteExtensions.cs b/MediaBrowser.Server.Implementations/Persistence/SqliteExtensions.cs
index d67c1894d..f8cb6c9f4 100644
--- a/MediaBrowser.Server.Implementations/Persistence/SqliteExtensions.cs
+++ b/MediaBrowser.Server.Implementations/Persistence/SqliteExtensions.cs
@@ -1,4 +1,5 @@
-using MediaBrowser.Model.Logging;
+using System.Text;
+using MediaBrowser.Model.Logging;
using MediaBrowser.Model.Serialization;
using System;
using System.Data;
@@ -173,5 +174,36 @@ namespace MediaBrowser.Server.Implementations.Persistence
return stream.ToArray();
}
}
+
+ public static void AddColumn(this IDbConnection connection, ILogger logger, string table, string columnName, string type)
+ {
+ using (var cmd = connection.CreateCommand())
+ {
+ cmd.CommandText = "PRAGMA table_info(" + table + ")";
+
+ using (var reader = cmd.ExecuteReader(CommandBehavior.SequentialAccess | CommandBehavior.SingleResult))
+ {
+ while (reader.Read())
+ {
+ if (!reader.IsDBNull(1))
+ {
+ var name = reader.GetString(1);
+
+ if (string.Equals(name, columnName, StringComparison.OrdinalIgnoreCase))
+ {
+ return;
+ }
+ }
+ }
+ }
+ }
+
+ var builder = new StringBuilder();
+
+ builder.AppendLine("alter table " + table);
+ builder.AppendLine("add column " + columnName + " " + type);
+
+ connection.RunQueries(new[] { builder.ToString() }, logger);
+ }
}
} \ No newline at end of file