/// <summary> /// Compara dos Synonyms y devuelve true si son iguales, caso contrario, devuelve false. /// </summary> public Boolean Compare(FullText destination) { Database database = (Database)this.Parent; if (destination == null) { throw new ArgumentNullException("destination"); } if (!this.IsAccentSensity.Equals(destination.IsAccentSensity)) { return(false); } if (!this.IsDefault.Equals(destination.IsDefault)) { return(false); } if ((!String.IsNullOrEmpty(this.FileGroupName)) && (!String.IsNullOrEmpty(destination.FileGroupName))) { if (!this.FileGroupName.Equals(destination.FileGroupName)) { return(false); } } if (database.Options.Ignore.FilterFullTextPath) { if ((!String.IsNullOrEmpty(this.Path)) && (!String.IsNullOrEmpty(destination.Path))) { return(this.Path.Equals(destination.Path, StringComparison.CurrentCultureIgnoreCase)); } } return(true); }
public override SQLScriptList ToSqlDiff(ICollection <ISchemaBase> schemas) { var isAzure10 = this.Info.Version == DatabaseInfo.VersionTypeEnum.SQLServerAzure10; var listDiff = new SQLScriptList(); var header = $@"/* OpenDBDiff {System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString()} https://github.com/OpenDBDiff/OpenDBDiff Script created by {Environment.UserDomainName}\{Environment.UserName} on {DateTime.Now.ToShortDateString()} at {DateTime.Now.ToLongTimeString()}. Created on: {Environment.MachineName} Source: {SourceInfo?.Database ?? "Unknown"} on {SourceInfo?.Server ?? "Unknown"} Destination: {Info?.Database ?? "Unknown"} on {Info?.Server ?? "Unknown"} ### This script performs actions to change the Destination schema to the Source schema. ### */ "; listDiff.Add(new SQLScript(header, 0, ScriptAction.None)); if (!isAzure10) { listDiff.Add("USE [" + Name + "]\r\nGO\r\n\r\n", 0, ScriptAction.UseDatabase); listDiff.AddRange(Assemblies.ToSqlDiff(schemas)); listDiff.AddRange(UserTypes.ToSqlDiff(schemas)); } listDiff.AddRange(TablesTypes.ToSqlDiff(schemas)); listDiff.AddRange(Tables.ToSqlDiff(schemas)); listDiff.AddRange(Rules.ToSqlDiff(schemas)); listDiff.AddRange(Schemas.ToSqlDiff(schemas)); listDiff.AddRange(XmlSchemas.ToSqlDiff(schemas)); listDiff.AddRange(Procedures.ToSqlDiff(schemas)); if (!isAzure10) { listDiff.AddRange(CLRProcedures.ToSqlDiff(schemas)); listDiff.AddRange(CLRFunctions.ToSqlDiff(schemas)); listDiff.AddRange(FileGroups.ToSqlDiff(schemas)); } listDiff.AddRange(DDLTriggers.ToSqlDiff(schemas)); listDiff.AddRange(Synonyms.ToSqlDiff(schemas)); listDiff.AddRange(Views.ToSqlDiff(schemas)); listDiff.AddRange(Users.ToSqlDiff(schemas)); listDiff.AddRange(Functions.ToSqlDiff(schemas)); listDiff.AddRange(Roles.ToSqlDiff(schemas)); listDiff.AddRange(PartitionFunctions.ToSqlDiff(schemas)); listDiff.AddRange(PartitionSchemes.ToSqlDiff(schemas)); if (!isAzure10) { listDiff.AddRange(FullText.ToSqlDiff(schemas)); } return(listDiff); }
public override string ToSql() { string sql = ""; sql += FileGroups.ToSql(); sql += Schemas.ToSql(); sql += XmlSchemas.ToSql(); sql += Rules.ToSql(); sql += UserTypes.ToSql(); sql += Assemblies.ToSql(); sql += Tables.ToSql(); sql += Functions.ToSql(); sql += Procedures.ToSql(); sql += CLRProcedures.ToSql(); sql += CLRFunctions.ToSql(); sql += DDLTriggers.ToSql(); sql += Synonyms.ToSql(); sql += Views.ToSql(); sql += Users.ToSql(); sql += PartitionFunctions.ToSql(); sql += FullText.ToSql(); return(sql); }
/*public List<ISchemaBase> FindAllByColumn(String ColumnName) * { * this.t * }*/ public override SQLScriptList ToSqlDiff(System.Collections.Generic.ICollection <ISchemaBase> schemas) { var isAzure10 = this.Info.Version == DatabaseInfo.VersionTypeEnum.SQLServerAzure10; var listDiff = new SQLScriptList(); listDiff.Add(new SQLScript(String.Format(@"/* Open DBDiff {0} https://github.com/OpenDBDiff/OpenDBDiff Script created by {1}\{2} on {3} at {4}. Created on: {5} Source: {6} on {7} Destination: {8} on {9} */ ", System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString(), Environment.UserDomainName, Environment.UserName, DateTime.Now.ToShortDateString(), DateTime.Now.ToLongTimeString(), Environment.MachineName, SourceInfo != null ? SourceInfo.Database : "Uknown", SourceInfo != null ? SourceInfo.Server : "Uknown", Info != null ? Info.Database : "Uknown", Info != null ? Info.Server : "Uknown", 0), 0, Enums.ScripActionType.None)); if (!isAzure10) { listDiff.Add("USE [" + Name + "]\r\nGO\r\n\r\n", 0, Enums.ScripActionType.UseDatabase); listDiff.AddRange(Assemblies.ToSqlDiff(schemas)); listDiff.AddRange(UserTypes.ToSqlDiff(schemas)); } listDiff.AddRange(TablesTypes.ToSqlDiff(schemas)); listDiff.AddRange(Tables.ToSqlDiff(schemas)); listDiff.AddRange(Rules.ToSqlDiff(schemas)); listDiff.AddRange(Schemas.ToSqlDiff(schemas)); listDiff.AddRange(XmlSchemas.ToSqlDiff(schemas)); listDiff.AddRange(Procedures.ToSqlDiff(schemas)); if (!isAzure10) { listDiff.AddRange(CLRProcedures.ToSqlDiff(schemas)); listDiff.AddRange(CLRFunctions.ToSqlDiff(schemas)); listDiff.AddRange(FileGroups.ToSqlDiff(schemas)); } listDiff.AddRange(DDLTriggers.ToSqlDiff(schemas)); listDiff.AddRange(Synonyms.ToSqlDiff(schemas)); listDiff.AddRange(Views.ToSqlDiff(schemas)); listDiff.AddRange(Users.ToSqlDiff(schemas)); listDiff.AddRange(Functions.ToSqlDiff(schemas)); listDiff.AddRange(Roles.ToSqlDiff(schemas)); listDiff.AddRange(PartitionFunctions.ToSqlDiff(schemas)); listDiff.AddRange(PartitionSchemes.ToSqlDiff(schemas)); if (!isAzure10) { listDiff.AddRange(FullText.ToSqlDiff(schemas)); } return(listDiff); }