public override void GetCreationScript(StringBuilder source) { var primaryKeyFieldName = GetPrimaryKeyField(); var columnBuilder = new StringBuilder(); using (var dRead = GetReader(PostgresQueries.GetAllTableColumns(Schema, Table))) { while (dRead.Read()) { var columName = dRead[ColumnName].ToString(); var columnType = dRead[DataType].ToString().ToUpper(); if (string.Equals(columName, primaryKeyFieldName, StringComparison.InvariantCulture)) { columnType = columnType == "INTEGER" ? "SERIAL" : "BIGSERIAL"; } columnBuilder.AppendLine($"{columName} {columnType} {NullDefine(dRead[IsNull])},"); } if (!string.IsNullOrEmpty(primaryKeyFieldName)) { columnBuilder.AppendLine(TablePrimaryKeyConstraint(primaryKeyFieldName)); } CreateTableFromTemplate(source, columnBuilder); } }
private string[] GetTableColumns() { var columns = new List <string>(); using (var dRead = GetReader(PostgresQueries.GetAllTableColumns(Schema, Table))) { while (dRead.Read()) { columns.Add(dRead[ColumnName].ToString()); } } return(columns.ToArray()); }