public static void SyncTable(ServiceImpl service) { if (service.DatabaseTables == null || service.DatabaseTables.Count <= 0) { return; } foreach (var tableName in service.DatabaseTables.Keys) { var tableColumns = service.DatabaseTables[tableName]; if (tableColumns == null || tableColumns.Count == 0) { continue; } if (!DatoryUtils.IsTableExists(WebConfigUtils.DatabaseType, WebConfigUtils.ConnectionString, tableName)) { DatoryUtils.CreateTable(WebConfigUtils.DatabaseType, WebConfigUtils.ConnectionString, tableName, tableColumns); } else { DatoryUtils.AlterTable(WebConfigUtils.DatabaseType, WebConfigUtils.ConnectionString, tableName, tableColumns, null); } } }
public static Compiler GetCompiler(DatabaseType databaseType, string connectionString) { Compiler compiler = null; if (databaseType == DatabaseType.MySql) { compiler = new MySqlCompiler(); } else if (databaseType == DatabaseType.SqlServer) { compiler = new SqlServerCompiler { UseLegacyPagination = DatoryUtils.IsUseLegacyPagination(databaseType, connectionString) }; } else if (databaseType == DatabaseType.PostgreSql) { compiler = new PostgresCompiler(); } else if (databaseType == DatabaseType.Oracle) { compiler = new OracleCompiler { UseLegacyPagination = DatoryUtils.IsUseLegacyPagination(databaseType, connectionString) }; } return(compiler); }
public void Start() { Skip.IfNot(EnvUtils.IntegrationTestMachine); var tableName = _repository.TableName; var tableColumns = _repository.TableColumns; Assert.Equal("TestTable", tableName); Assert.NotNull(tableColumns); Assert.Equal(11, tableColumns.Count); var varChar100Column = tableColumns.FirstOrDefault(x => x.AttributeName == nameof(TestTableInfo.TypeVarChar100)); Assert.NotNull(varChar100Column); Assert.Equal(DataType.VarChar, varChar100Column.DataType); Assert.Equal(100, varChar100Column.DataLength); var varCharDefaultColumn = tableColumns.FirstOrDefault(x => x.AttributeName == nameof(TestTableInfo.TypeVarCharDefault)); Assert.NotNull(varCharDefaultColumn); Assert.Equal(DataType.VarChar, varCharDefaultColumn.DataType); Assert.Equal(DatoryUtils.VarCharDefaultLength, varCharDefaultColumn.DataLength); var boolColumn = tableColumns.FirstOrDefault(x => x.AttributeName == nameof(TestTableInfo.TypeBool)); Assert.NotNull(boolColumn); Assert.Equal(DataType.Boolean, boolColumn.DataType); var contentColumn = tableColumns.FirstOrDefault(x => x.AttributeName == nameof(TestTableInfo.Content)); Assert.NotNull(contentColumn); Assert.Equal(DataType.Text, contentColumn.DataType); var isLockedOutColumn = tableColumns.FirstOrDefault(x => x.AttributeName == "IsLockedOut"); Assert.NotNull(isLockedOutColumn); var lockedColumn = tableColumns.FirstOrDefault(x => x.AttributeName == nameof(TestTableInfo.Locked)); Assert.Null(lockedColumn); var isExists = DatoryUtils.IsTableExists(EnvUtils.DatabaseType, EnvUtils.ConnectionString, tableName); if (isExists) { DatoryUtils.DropTable(EnvUtils.DatabaseType, EnvUtils.ConnectionString, tableName); } DatoryUtils.CreateTable(EnvUtils.DatabaseType, EnvUtils.ConnectionString, tableName, tableColumns); }
public void End() { Skip.IfNot(EnvUtils.IntegrationTestMachine); DatoryUtils.DropTable(EnvUtils.DatabaseType, EnvUtils.ConnectionString, _repository.TableName); }
public static List <TableColumn> GetTableColumnInfoList(string tableName) { return(DatoryUtils.GetTableColumns(Context.Environment.DatabaseType, Context.Environment.ConnectionString, tableName)); }
public static List <string> GetTableNameList() { return(DatoryUtils.GetTableNames(Context.Environment.DatabaseType, Context.Environment.ConnectionString)); }