Esempio n. 1
0
        internal static void PublishDacpacFile(ICakeContext context, string connectionString, string targetDatabaseName, string dacpacFilePath, PublishDacpacSettings settings = null)
        {
            context.Log.Information($"About to publish dacpac from {dacpacFilePath} into database {targetDatabaseName}");

            var dacPackage = DacPackage.Load(dacpacFilePath);

            context.Log.Debug($"Loaded dacpac file {dacpacFilePath}");

            var service = new DacServices(connectionString);

            var options = GetPublishOptions(settings);

            service.Publish(dacPackage, targetDatabaseName, options);

            context.Log.Information($"Finished restoring dacpac file into database {targetDatabaseName}");
        }
Esempio n. 2
0
        /// <summary>Find by dacpac file in directory</summary>
        public static (string DataBaseScript, string DeploymentReport, string masterDbScript) Publish(this DacPackage package, string connectionString
                                                                                                      , PublishOptions options = null
                                                                                                      , EventHandler <DacProgressEventArgs> progressChanged = null
                                                                                                      , EventHandler <DacMessageEventArgs> messageEvent     = null)
        {
            var connString = new Microsoft.Data.SqlClient.SqlConnectionStringBuilder(connectionString.Trim());
            var dacService = new DacServices(connString.ToString());

            if (progressChanged != null)
            {
                dacService.ProgressChanged += progressChanged;
            }
            if (messageEvent != null)
            {
                dacService.Message += messageEvent;
            }
            var result = dacService.Publish(package, connString.InitialCatalog, options);

            return(result.DatabaseScript, result.DeploymentReport, result.MasterDbScript);
        }