Laravel Migration - Mise À Jour Enum Options
J'essaye d'ajouter un enum option pour une table (sans perdre l'actuel ensemble de données) en utilisant le générateur de schéma.
La seule chose que j'ai vraiment été en mesure de trouver la colonne altération est http://www.flipflops.org/2013/05/25/modify-an-existing-database-column-in-a-laravel-migration/ et je crois que c'était écrit pour Laravel3.
Même si, j'ai essayé d'utiliser la DB::query('ALTER TABLE ...'); commandement, mais il erronées avec call_user_func_array() s'attend à ce paramètre 1 pour être un rappel de classe 'Éclairer\Database\MySqlConnection' n'est pas une méthode "query".
DB::query("ALTER TABLE users CHANGE COLUMN permissions permissions ENUM('admin', 'user', 'candidate')");
J'ai aussi essayé de faire ceci:
Schema::table('users', function ($table) {
$table->enum('permissions', array('admin', 'user', 'candidate'))->default('user');
});
mais une erreur disant que la colonne existe déjà.
Quelle est la meilleure façon de faire ce que je suis en train de le faire sans perdre toutes les données dans la colonne?
- je pense que tout est manquant est juste ->modifier();
- c'était laravel 4.2, donc les choses sont probablement différente maintenant.
Vous devez vous connecter pour publier un commentaire.
Utiliser le
DB::l'instruction
méthode:DB::row
ouDB::query
ne fonctionne pas alors queDB::statement
n'?La Modification De Colonnes
Conditions préalables
Avant de modifier une colonne, assurez-vous d'ajouter le doctrine/dbal la dépendance à votre compositeur.json fichier. La Doctrine DBAL de la bibliothèque est utilisée pour déterminer l'état actuel de la colonne et de créer les requêtes SQL nécessaires pour les ajustements à la colonne:
https://laravel.com/docs/5.8/migrations#modifying-columns