public void Migrate() { if (!GemFireXDDbi.SchemaExists(SchemaName)) { Migrator.OnMigrateEvent(new MigrateEventArgs( Result.Unknown, String.Format("Migrating database schema {0}...", SchemaName))); GemFireXDDbi.Create(String.Format("CREATE SCHEMA {0}", this.SchemaName)); } if ((!this.Created) && (!GemFireXDDbi.TableExists(this.TableName))) { foreach (String tblFullName in referencedTables) { if (!this.TableFullName.Equals(tblFullName)) { Migrator.GetTableFromList(tblFullName).Migrate(); } } Migrator.OnMigrateEvent(new MigrateEventArgs( Result.Unknown, String.Format("Creating table {0}...", TableFullName))); Helper.Log(GetCreateTableSql()); GemFireXDDbi.Create(GetCreateTableSql()); this.Created = true; Helper.Log(String.Format("Table {0} created", TableFullName)); MigrateData(); } }
public bool Validate(DataTable origTable) { Migrator.OnMigrateEvent(new MigrateEventArgs( Result.Unknown, String.Format("Validating table {0} data...", TableFullName))); DataTable destTable = GemFireXDDbi.GetTableData(TableFullName); for (int i = 0; i < origTable.Rows.Count; i++) { for (int j = 0; j < origTable.Columns.Count; j++) { if (!Validate(destTable.Rows[i][j], origTable.Rows[i][j])) { Helper.Log(String.Format( "Validate failed on table {0}, row {1}, column {2}", TableFullName, i, j)); Helper.Log(String.Format("dest -> {0}; orig -> {1}", destTable.Rows[i][j].ToString(), origTable.Rows[i][j].ToString())); Migrator.Errorred = true; return(false); } } } Helper.Log(String.Format("Table {0} validated", TableFullName)); return(true); }
private void MigrateData() { Helper.Log(String.Format("Start migrating table {0}", TableFullName)); DataTable sqlTable = null; Migrator.OnMigrateEvent(new MigrateEventArgs( Result.Unknown, String.Format("Copying table {0} data...", TableFullName))); sqlTable = SQLSvrDbi.GetTableData(TableFullName); GFXDClientConnection connection = GemFireXDDbi.OpenNewConnection(); GemFireXDDbi.BatchInsert(connection, GetInsertSql(), sqlTable, this); while (connection.State == ConnectionState.Executing) { Helper.Log("Connection is still executing"); Thread.Sleep(5000); } Validate(sqlTable); Helper.Log(String.Format("Table {0} migrated", TableFullName)); }
public void Migrate() { try { if (!GemFireXDDbi.IndexExists(IndexName) && !Created) { Migrator.OnMigrateEvent(new MigrateEventArgs( Result.Unknown, String.Format("Migrating index {0}...", IndexName))); Util.Helper.Log(GetCreateIndexSql()); GemFireXDDbi.Create(GetCreateIndexSql()); Util.Helper.Log(String.Format("Index {0} created", IndexName)); this.Created = true; } else { Util.Helper.Log(String.Format("Index {0} already exists", IndexName)); } } catch (Exception e) { Migrator.Errorred = true; Util.Helper.Log(e); } }
public void Migrate() { String sql = GetCreateModuleSql(); try { Util.Helper.Log(sql); GemFireXDDbi.Create(sql); Util.Helper.Log(String.Format("Module {0} created", ModuleName)); } catch (Exception e) { Migrator.Errorred = true; Util.Helper.Log(e); } }
private void AddColumns() { DataTable dt = SQLSvrDbi.GetTableColumns(SchemaName, TableName); if (dt != null & dt.Rows.Count > 0) { foreach (DataRow row in dt.Rows) { DbField field = new DbField(); String colName = row["ColumnName"].ToString().Trim(); if (GemFireXDDbi.IsReservedWord(colName)) { colName = String.Format("\"{0}\"", colName); } if (colName.Contains(" ")) { colName = colName.Replace(" ", "_"); } field.FieldName = colName; if (!String.IsNullOrEmpty(row["CharMaxLength"].ToString())) { field.Length = Convert.ToInt32(row["CharMaxLength"].ToString()); } field.FieldType = DbTypeMap.GetGFXDTypeFromSqlType(row["DataType"].ToString()); if (row["IsNullable"].ToString().Trim() == "YES") { field.IsNullable = true; } Columns.Add(field); } } }
public bool Validate() { return(GemFireXDDbi.TableExists(TableName)); }