Laravel 5.3 db:seed Befehl funktioniert einfach nicht

Lesezeit: 3 Minuten

Ich mache alles nach Vorschrift:

  1. Installierte frische Laravel 5.3.9-App (alle meine nicht frischen Apps erzeugen denselben Fehler)

  2. Lauf php artisan make:auth

  3. Migrationen für eine neue Tabelle erstellen `php artisan make:migration create_quotations_table –create=quotations

    Schema::create('quotations', function (Blueprint $table) {
        $table->increments('id');
    
        $table->string('text');
    
        // my problem persists even with the below two columns commented out
        $table->integer('creator_id')->unsigned()->index('creator_id');
        $table->integer('updater_id')->unsigned()->index('updater_id');
    
        $table->softDeletes();
        $table->timestamps();
    });
    
  4. Dann laufe ich php artisan migrate

  5. Dann definiere ich einen neuen Seed php artisan make:seeder QuotationsTableSeeder

Der komplette Inhalt der Datei, nachdem ich eine einfache Einfügung hinzugefügt habe:

<?php

use Illuminate\Database\Seeder;

class QuotationsTableSeeder extends Seeder
{
/**
 * Run the database seeds.
 *
 * @return void
 */
public function run()
{
    DB::table('quotations')->insert([
        'text' => str_random(10),

    ]);
}
}
  1. Dann laufe ich php artisan db:seed

Problem

es geht einfach nicht. Kein Feedback präsentiert, keine Fehler in der Protokolldatei. Das Problem besteht sowohl in meiner lokalen Umgebung (Win7, neuester WAMP-Server) als auch in meinem Digital Ocean VPS powered by Ubuntu 16.04. Alle oben genannten Schritte habe ich in mehreren separaten Apps durchgeführt – ohne Ergebnis. Auch unter Laragon 2.0.5 Server.

was ich probiert habe

php artisan optimize wie hier vorgeschlagen.

composer dump-autoload ich php artisan clear-compiled haben auch keine Ergebnisse gebracht

Ich habe auch versucht, nur dem offiziellen Dokumentbeispiel zu folgen – fehlgeschlagen.

Ich fügte hinzu use DB; in die Seed-Datei – immer noch kein Ergebnis.

machen

Hilfe!!! Wie kommt es, dass sie nicht funktionieren?

  • in meinem Fall, wenn sich das Modul in Unterordnern befindet und direkt ausgeführt werden soll, ohne dass andere Seeder-PHP-Handwerker db:seed –class=WM\Common\Seeder\SmsStatusSeeder ausgeführt werden

    – Säbel tabatabaee yazdi

    12. Oktober 2020 um 15:28 Uhr

Benutzeravatar von Rafael Berro
Rafael Berro

Nennen Sie Ihre Sämaschine im Inneren der DatabaseSeeder Klasse? Diesen Weg:

database/seeds/DatabaseSeeder.php

class DatabaseSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        $this->call(QuotationTableSeeder::class);
    }
}

Oder fügen Sie die hinzu --class Option bei Verwendung der php artisan db:seed Befehl, so:

php artisan db:seed --class="QuotationTableSeeder"

Vergessen Sie nach dem Erstellen oder Entfernen Ihrer Seeder nicht, den folgenden Befehl auszuführen:

composer dump-autoload

  • bei mir funktioniert es nur mit der --class Option, auch wenn ich sie der öffentlichen Ausführungsfunktion hinzugefügt habe. Irgendwelche Ideen warum?

    – davejal

    24. Januar 2017 um 18:35 Uhr

  • Ich bin froh, dass Sie darauf geantwortet haben, zum ersten Mal haben mich die Dokumente in die Irre geführt.

    – mdgrech

    25. Januar 2018 um 5:49 Uhr

  • Freut mich, dass ich dir helfen konnte.

    – Rafael Berro

    25. Januar 2018 um 19:24 Uhr

  • Sie müssen den von Ihnen erstellten Seeder zu DatabaseSeeder hinzufügen $this->call(QuotationTableSeeder::class); Danach können Sie einfach anrufen php artisan db:seed

    – Luigi López

    27. Juli 2018 um 3:01 Uhr


  • Es ist 7.x und das ist nicht in der offiziellen Dokumentation.

    – Eray Erdin

    8. März 2020 um 0:20 Uhr

Benutzeravatar von petrmafia
petrafia

Hinweis:
Bitte verwenden Sie NUR ENTWICKLUNGSUMGEBUNGEN und/oder EINWEG-DATENBANKEN mit Vorsicht

Wenn jemand anderes Probleme mit der gleichzeitigen Migration UND dem Seeding hat, versuchen Sie es bitte

php artisan migrate:fresh --seed

Hat bei mir funktioniert..

  • Ich werde dies nicht empfehlen, da dieser Befehl: drop all tables from the database and then execute the migrate command. Das kann für manche katastrophal sein!

    – Nel

    11. Januar 2020 um 6:04 Uhr

1439970cookie-checkLaravel 5.3 db:seed Befehl funktioniert einfach nicht

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy