Laravel-Migration zum Hinzufügen eines Nullable-Attributs zur vorhandenen Tabellenspalte
P粉674757114
P粉674757114 2023-09-05 12:58:02
0
1
426
<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>
P粉674757114
P粉674757114

Antworte allen(1)
P粉068486220

您可以尝试以下操作:

      Schema::table('users', function (Blueprint $table) {
            $table->char('role_id', 36)->nullable()->constrained('roles')->change();
        });

或者可以使用原始的SQL语句:

    DB::statement('ALTER TABLE users MODIFY role_id CHAR(36) NULL');
    DB::statement('ALTER TABLE users ADD CONSTRAINT fk_users_role_id FOREIGN KEY (role_id) REFERENCES roles (id)');

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!