static void CreateTable( this MySqlConnection conn, SqlTable table, ChangeEngine engine, PrimaryKeyInfo primaryKey, Dictionary <string, IColumnInfo> fields, Dictionary <string, NamedKeyInfo> tableKeys, uint tableRevision, ILog log) { log.InfoFormat("Creating table '{0}' at revision {1}", table.Name, tableRevision); var fieldSqls = new List <string>(); foreach (IColumnInfo field in fields.Values) { fieldSqls.Add(field.FieldSql()); } if (null != primaryKey) { fieldSqls.Add(primaryKey.FieldSql()); } foreach (NamedKeyInfo key in tableKeys.Values) { fieldSqls.Add(key.FieldSql()); } string cmd = "CREATE TABLE `" + MySqlHelper.EscapeString(table.Name) + "` ("; cmd += string.Join(",", fieldSqls); cmd += ") COMMENT='" + tableRevision.ToString() + "' ENGINE=" + (engine != null ? engine.Engine : table.Engine); if (table.IsDynamicRowFormat) { cmd += " ROW_FORMAT=DYNAMIC"; } cmd += " CHARACTER SET UTF8;"; ExecuteStatement(conn, cmd, log); }