/// <summary> /// Deploy database from different sources to different destiations using WebDeploy /// </summary> /// <param name="sourceDbType"></param> /// <param name="sourceConnectionString"></param> /// <param name="destinationDbType"></param> /// <param name="destinationConnectionString"></param> /// <param name="includeData"></param> /// <param name="dropDestinationDatabase"></param> public static void DeployDatabase( WebDeployDatabaseType sourceDbType, string sourceConnectionString, WebDeployDatabaseType destinationDbType, string destinationConnectionString, bool includeData = false, bool dropDestinationDatabase = false) { InitializeWebDeployment(); DeploymentWellKnownProvider srcProvider; DeploymentBaseOptions srcBaseOptions; PrepareDatabaseDeployment(sourceDbType, out srcProvider, out srcBaseOptions, includeData, dropDestinationDatabase); DeploymentWellKnownProvider destProvider; DeploymentBaseOptions destBaseOptions; PrepareDatabaseDeployment(destinationDbType, out destProvider, out destBaseOptions, includeData, dropDestinationDatabase); var destSyncOptions = new DeploymentSyncOptions(); ExecuteDeploy( sourceConnectionString, destinationConnectionString, srcProvider, srcBaseOptions, destProvider, destBaseOptions, destSyncOptions); }
/// <summary> /// Publish database to the cloud /// </summary> /// <param name="sourceDbType"></param> /// <param name="sourceConnectionString"></param> /// <param name="destinationDbType"></param> /// <param name="destinationConnectionString"></param> /// <param name="includeData"></param> public void PublishDatabase(WebDeployDatabaseType sourceDbType, string sourceConnectionString, WebDeployDatabaseType destinationDbType, string destinationConnectionString, bool includeData = false) { TestEasyLog.Instance.Info(string.Format("Publishing database '{0}' to '{1}'", sourceConnectionString, destinationConnectionString)); WebDeployHelper.DeployDatabase(sourceDbType, sourceConnectionString, destinationDbType, destinationConnectionString, includeData); }
private static void PrepareDatabaseDeployment(WebDeployDatabaseType dbType, out DeploymentWellKnownProvider provider, out DeploymentBaseOptions options, bool includeData = false, bool dropDestinationDatabase = false) { provider = DeploymentWellKnownProvider.DBDacFx; options = new DeploymentBaseOptions(); switch (dbType) { case WebDeployDatabaseType.SqlCe: case WebDeployDatabaseType.FullSql: provider = DeploymentWellKnownProvider.DBDacFx; break; case WebDeployDatabaseType.MySql: provider = DeploymentWellKnownProvider.DBMySql; break; } options.AddDefaultProviderSetting(provider.ToString(), "dropDestinationDatabase", dropDestinationDatabase); options.AddDefaultProviderSetting(provider.ToString(), "includeData", includeData); }