Laravel-Migration zum Hinzufügen eines Nullable-Attributs zur vorhandenen Tabellenspalte
<p>Ich habe begonnen, ein kleines persönliches Projekt zu Laravel 10 zu schreiben. Das Problem, auf das ich gestoßen bin, ist wie folgt: </p>
<ol>
<li>Ich habe eine Benutzertabelle mit einer Fremdschlüssel-UUID – Role_ID. </li>
<li>Ich möchte dieser Spalte ein Nullable-Attribut hinzufügen, ohne die Tabelle zu löschen. </li>
<li>Ich habe eine neue Migration erstellt, um die Änderungen vorzunehmen. </li>
<li>Das Paket doctrine/dbal wird installiert, um (theoretisch) Spalten zu ändern. </li>
<li>Mein Code in der Migration lautet wie folgt: </li>
</ol>
<pre class="brush:php;toolbar:false;">public function up(): void
{
Schema::table('users', function (Blueprint $table) {
$table->foreignUuid('role_id')->nullable()->constrained('roles')->change();
});
}
/*** Machen Sie die Migrationen rückgängig.*/
öffentliche Funktion down(): void
{
Schema::table('users', function (Blueprint $table) {
$table->foreignUuid('role_id')->nullable(false)->constrained('roles')->change();
});
}</pre>
<p>Aber wenn ich php artisan migrate ausführe, erhalte ich die folgende Fehlermeldung: SQLSTATE[42S21]: Spalte existiert bereits: 1060 Doppelter Spaltenname „role_id“ (Verbindung: MySQL, SQL: Alter Table Users Add Role_ID Char(36)) Null). </p>
<p>Für Vorschläge zur korrekten Änderung der Spalten wären wir sehr dankbar. </p>