J'ai quelques tables où j'ai besoin de tinyint
champs qui doivent être unsigned
et mis à auto_increment
.Laravel 5.3: Auto incrémentation non signée TINYINT
Le L5.3 Database : Migrations documentationne pas ont une méthode pour définir unsigned auto-incrementing tinyint
.
J'ai essayé de l'implémenter en utilisant le DB::update()
. Mon fichier de migration pour la table ressemble à:
public function up()
{
Schema::create('table_name', function (Blueprint $table)
{
$table->unsignedTinyInteger('field1');
$table->string('field2', 255);
$table->primary('field1');
$table->index('field2');
$field = "field1";
});
$this->addAutoIncrements($field);
}
public function addAutoIncrements($field)
{
DB::update('ALTER TABLE table_name MODIFY $field TINYINT UNSIGNED NOT NULL AUTO_INCREMENT');
}
Lorsque je tente php artisan migrate
avec un tel fichier de migration, il émigre sans aucune erreur, mais n'assignantauto-increment
.
Comment résoudre ce problème? Devrais-je faire la mise à jour en tant que nouvelle migration complète? Est-ce que quelqu'un l'a déjà fait?
'$ table-> unsignedTinyInteger ('field1') -> increments();' – Ali
@Ali: C'est ce que j'ai essayé en premier. N'a pas fonctionné. –