Createtable() E Execute Ignorano Il "collate" Su Mysql Server

Codice che eseguo




$this->createTable('{{verified_sender}}', array(

            "id" => "INT( 11 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY",

            "client_id" => "INT(11) UNSIGNED NOT NULL",

            "kind" => "ENUM('MOBILE','ALIAS') NOT NULL",

            "sender" => "VARCHAR(18) NOT NULL",

            "status" => "ENUM('DENIED','PENDING','APPROVED') NOT NULL",

            "ts" => "TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP",

        ), 'ENGINE = InnoDB DEFAULT CHARSET = utf8 COLLATE = utf8_general_ci');



Quando esamino la struttura della tabella l’informazione sul “collation” è vuota, tant’è che usando MySqlWorkbench e facendo un sync, il programma vuole eseguire




ALTER TABLE `sms_verified_sender` COLLATE = utf8_general_ci ;



A questo punto allora nella migration aggiungo




$this->execute("ALTER TABLE `" . DB_TABLE_PREFIX . "verified_sender` COLLATE = utf8_general_ci ;");



Anche DOPO aver droppato la tabella (usango migrate down) e rieseguito la migrazione (migrate up), la tabella NON ha comunque l’informazione sul collation…

Mi sfugge il motivo

D’istinto, mi verrebbe da rimuoverlo nel create table.

Uhm, non funziona comunque, spiacente.

Ho risolto forzando il default collate sul db (ci deve essere sfuggito moooolto tempo fa :( )

Anche io mi fido del collate nel db.