Framework: Die Migration berücksichtigt das Präfix nicht, wenn überprüft wird, ob die Migrationstabelle vorhanden ist [Bug]

Erstellt am 11. Jan. 2013  ·  3Kommentare  ·  Quelle: laravel/framework

Ursprünglicher Fehler hier gefunden: https://github.com/illuminate/database/issues/111 - Gemäß Taylor in sein Repo verschoben. Hier der Originaltext:

Ich habe mit Machuga im IRC gesprochen - es wurde vorgeschlagen, ein Problem zu erstellen.

Problem:

Fehler nach der ersten Migration: SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'up_migrations' already exists

Schritte zum Reproduzieren:

  1. Neuinstallation von L4
  2. Fügen Sie der Datenbank in der Datenbankverbindungskonfiguration (MySql) ein Präfix hinzu.
  3. Migration erstellen $ php artisan migrate:make create_users_table --table=users --create
  4. Füllen Sie einige Felder aus, führen Sie die Migration aus $ php artisan migrate
  5. Versuchen Sie eine Migration: Aktualisieren Sie $ php artisan migrate:refresh
  6. FEHLER: SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'up_migrations' already exists

    Relevante Dateien:

Ich habe dies in dieser Datei verfolgt : Illuminate\Database\MigrationsDatabaseMigrationRepository::repositoryExists() und speziell darin der Aufruf an return $schema->hasTable($this->table); hier

Die an hasTable() übergebene Variable $this->table enthält das Tabellenpräfix nicht. Illuminate\Database\Schema\MySqlBuilder::hasTable($table) prüft auch nicht auf Präfixe.

Leider kenne ich den Code/die Konvention noch nicht, um zu wissen, wo Sie das Präfix lieber nachschlagen möchten. (Nicht sicher, welche Klasse dieses "Wissen" haben sollte)

bug

Alle 3 Kommentare

OK danke. Wir werden es reparieren.

Fest.

Ich habe genau das gleiche Problem und habe gerade das Framework von der Website heruntergeladen.
Ich frage mich, ob der Fix in die Site-Version übernommen wurde.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen