Faire la colonne accepte pas la valeur null dans un Laravel migration
Je suis en train d'écrire une migration de faire certaines colonnes dans un tableau nullable
droit maintenant. Pour la fonction, bien sûr, je veux faire de ces colonnes not nullable
de nouveau. J'ai regardé à travers la générateur de schéma docs, mais ne pouvait pas voir un moyen de le faire.
Toute aide serait appréciée.
- la réponse la plus complète à cette question peut être trouvée ici: stackoverflow.com/a/32568625/4908847
Vous devez vous connecter pour publier un commentaire.
Avant Laravel 5 il n'y a pas de Laravel natif moyen de modifier une table existante colonne en utilisant le générateur de schéma. Vous devez utiliser des requêtes pour cet.
Cependant, comme de Laravel 5, vous pouvez utiliser:
$table->string('colmn', 255)->nullable()->change();
), mais l'inverse ne fonctionne pas ($table->string('colmn', 255)->change();
), donc vous avez encore le besoin d'utiliser des requêtes db pour cettenullable(false)
ne fonctionne pas pour moi dans Laravel 5.3 🙁nullable()
au lieu de fairenullable(false)
explicitement. Je suis un peu inquiet à ce sujet car il semble contradictoire en soi. Au moins je l'ai eu avec cette$table->integer('foo')->unsigned()->nullable(false)->change()
unsignedInteger('foo')
pour un entier non signé de sténographie.De Laravel 5, il est possible d'inverser ce natif passe tout simplement faux comme un argument pour accepter les valeurs null().
par exemple
De la première exécution de cette:
composer require doctrine/dbal
Puis créer une migration qui vont modifier le tableau comme suit:
php artisan make:migration fix_whatever_table_name_here
l'information ci-dessous est pour SQL
Utilisez le code ci-dessous la première
que d'exécuter ce code