using DbUp; using Sentry; using System; using System.Reflection; namespace Neo.Legitimate.Web.DBUp { public static class DatabaseUpdator { private static string _connectionString = null; private static string ConnectionString { get { if (_connectionString == null) _connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; return _connectionString; } } public static void UpdateDB() { try { var connectionString = ConnectionString; EnsureDatabase.For.SqlDatabase(connectionString); var upgrader = DeployChanges.To .SqlDatabase(connectionString) .WithScriptsAndCodeEmbeddedInAssembly(Assembly.GetExecutingAssembly(), (string s) => s.Contains("Legitimate")) .LogToConsole() .Build(); var result = upgrader.PerformUpgrade(); if (result.Successful) SentrySdk.WithScope(scope => { SentrySdk.CaptureMessage("Migration successfull"); }); else SentrySdk.WithScope(scope => { SentrySdk.CaptureMessage(string.Concat("Migration unsuccessfull - ", result.Error), SentryLevel.Error); }); } catch (Exception ex) { SentrySdk.WithScope(scope => { SentrySdk.CaptureException(ex); }); } } } }