private async Task <string> CreateDatabaseInternalAsync(string sqlScript, string databaseName)
        {
            await _sync.WaitAsync();

            try
            {
                await SqlScript.DeployAndExecute(sqlScript, Settings);

                _databases.Add(databaseName);

                return(CreateDatabaseConnectionString(databaseName));
            }
            finally
            {
                _sync.Release();
            }
        }
示例#2
0
        internal static void Deploy(
            Stream source,
            string databaseConnection,
            string databaseName,
            IImageSettings settings)
        {
            using (var dacPackage = Microsoft.SqlServer.Dac.DacPackage.Load(source))
            {
                var deployService   = new DacServices(databaseConnection);
                var deployScriptRaw = deployService.GenerateDeployScript(dacPackage, databaseName, DacpacOptions.Deploy);
                var deployScript    = new DeployScript(deployScriptRaw);

                deployScript.SetVariable("DefaultDataPath", "/tmp/");
                deployScript.SetVariable("DefaultLogPath", "/tmp/");

                var sqlScript = deployScript.Generate();
                SqlScript.DeployAndExecute(sqlScript, settings);
            }
        }