The code generated by crud is meant to be a good start for you. It still requires your change to fix things like you said. The type tinyint(1) is NOT recognized as a boolean as you know it allows more values than boolean.
Guys, scaffolding is not the problem. BOOL and BOOLEAN are synonyms for TINYINT. It would make sense in MysqlColumnSchema to map tinyint to boolean rather than integer. When I create a column as "boolean" in the DDL, it shows as tinyint(1) in Mysql.
Also it would be nice not to have to hack around Yii with stuff like this:
if ($model->tableSchema->columns[$attribute]->dbType == 'text')
$method = 'textarea';
elseif ($model->tableSchema->columns[$attribute]->dbType == 'tinyint(1)')
$method = 'checkbox';