1
0
mirror of https://github.com/bitwarden/server.git synced 2025-05-29 07:14:50 -05:00

create db on update if needed

This commit is contained in:
Kyle Spearrin 2017-08-21 09:57:09 -04:00
parent 5546d94f48
commit 371942e3e2

View File

@ -2,6 +2,7 @@
using Newtonsoft.Json; using Newtonsoft.Json;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Data.SqlClient;
using System.Diagnostics; using System.Diagnostics;
using System.IO; using System.IO;
using System.Net.Http; using System.Net.Http;
@ -97,9 +98,20 @@ namespace Setup
Console.WriteLine("Migrating database."); Console.WriteLine("Migrating database.");
var dbPass = Helpers.GetDatabasePasswordFronEnvFile(); var dbPass = Helpers.GetDatabasePasswordFronEnvFile();
var connectionString = Helpers.MakeSqlConnectionString("mssql", "vault", "sa", dbPass ?? string.Empty); var masterConnectionString = Helpers.MakeSqlConnectionString("mssql", "master", "sa", dbPass ?? string.Empty);
var vaultConnectionString = Helpers.MakeSqlConnectionString("mssql", "vault", "sa", dbPass ?? string.Empty);
using(var connection = new SqlConnection(masterConnectionString))
{
var command = new SqlCommand(
"IF ((SELECT COUNT(1) FROM sys.databases WHERE [name] = 'vault') = 0) CREATE DATABASE [vault];",
connection);
command.Connection.Open();
command.ExecuteNonQuery();
}
var upgrader = DeployChanges.To var upgrader = DeployChanges.To
.SqlDatabase(connectionString) .SqlDatabase(vaultConnectionString)
.JournalToSqlTable("dbo", "Migration") .JournalToSqlTable("dbo", "Migration")
.WithScriptsAndCodeEmbeddedInAssembly(Assembly.GetExecutingAssembly(), .WithScriptsAndCodeEmbeddedInAssembly(Assembly.GetExecutingAssembly(),
s => s.Contains($".DbScripts.") && !s.Contains(".Archive.")) s => s.Contains($".DbScripts.") && !s.Contains(".Archive."))