web-dev-qa-db-fra.com

Chaîne comme clé primaire dans la migration Laravel

J'ai dû changer une table dans ma base de données pour que le primary key n'est pas la norme increments.

Voici la migration,

public function up()
{
    Schema::create('settings', function (Blueprint $table) {
        $table->text('code', 30)->primary();
        $table->timestamps();
        $table->text('name');
        $table->text('comment');
    });
}

Cependant, MySQL revient avec,

Erreur de syntaxe ou violation d'accès: 1170 BLOB/TEXT colonne 'code' utilisé dans la spécification de clé sans longueur de clé (SQL: modifier la table settings ajouter la clé primaire settings_code_primary (code)

J'ai essayé de laisser le incrementsid normal et de modifier la table dans une migration différente, mais la même chose se produit.

Des idées de ce que je fais mal?

Laveral Version 5.4.23

7
DGeo

Changez-le en chaîne.

$table->string('code', 30)->primary();
15
Sandeesh