Mysql
 sql >> Database >  >> RDS >> Mysql

Laravel Schema Builder :Creazione di una colonna binary(16).

Estendi MySqlGrammar classe, ad es. in app/MySqlGrammar.php :

namespace App;

use Illuminate\Support\Fluent;

class MySqlGrammar extends \Illuminate\Database\Schema\Grammars\MySqlGrammar {

    protected function typeRealBinary(Fluent $column) {
        return "binary({$column->length})";
    }

}

Quindi usa una macro per aggiungere il tuo tipo di colonna:

DB::connection()->setSchemaGrammar(new \App\MySqlGrammar());

Blueprint::macro('realBinary', function($column, $length) {
    return $this->addColumn('realBinary', $column, compact('length'));
});

Schema::create('table', function(Blueprint $table) {
    $table->realBinary('url_hash', 16);
});