web-dev-qa-db-fra.com

Laravel 5.3 db: la commande de semences ne fonctionne tout simplement pas

Je fais tout par le livre: 

  1. J'ai installé la nouvelle application Laravel 5.3.9 (toutes mes applications non fraîches produisent la même erreur)

  2. exécuter php artisan make:auth

  3. créer des migrations pour une nouvelle table `php artisan: fabrication: 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. Puis je lance php artisan migrate

  5. Puis je définis une nouvelle graine php artisan make:seeder QuotationsTableSeeder

Le contenu complet du fichier, après avoir ajouté une simple insertion:

<?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. Puis je lance php artisan db:seed

problème

ça ne marche tout simplement pas. Aucun commentaire présenté, aucune erreur dans le fichier journal . Le problème persiste aussi bien dans mon environnement local (Win7, le serveur WAMP le plus récent) dans plusieurs applications séparées - sans résultat. Également sous le serveur Laragon 2.0.5.

ce que j'ai essayé

php artisan optimizecomme suggéré ici .

composer dump-autoload i php artisan clear-compiled n'a également apporté aucun résultat

J'ai également essayé de semer juste en suivant l'exemple de la documentation officielle - échoué.

J'ai ajouté use DB; au fichier de départ - toujours aucun résultat.

faire

aidez-moi!!! Comment se fait-il qu'ils ne travaillent pas?

15
Peter

Appelez-vous votre semoir dans la classe DatabaseSeeder? Par ici:

base de données/graines/DatabaseSeeder.php

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

Ou, ajoutez l'option --class lorsque vous utilisez la commande php artisan db:seed, de cette façon:

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

Après avoir créé ou supprimé vos sources, n'oubliez pas d'exécuter la commande suivante:

composer dump-autoload
38
Rafael Berro

Si quelqu'un d'autre rencontre des problèmes de migration ET d'ensemencement en même temps, essayez

php artisan migrate:fresh --seed

Travaillé pour moi ..

0
petermafia