[ Living Light @ 26.09.2019. 02:25 ] @
Citat:
Nemanja Avramović: Za dummy data koristi seedere

Nemanja, molim Te, ako ne smeta i ne zauzima Ti puno vremena,
baci koju korisnu reč :

-Šta je/su seeder-i?

(ja za tu reč nikad čuo, čini mi se, pa Te molim, za reč-dve, ako imaš vremena)

Hvala,

[Ovu poruku je menjao Nemanja Avramović dana 26.09.2019. u 09:50 GMT+1]
[ Zlatni_bg @ 26.09.2019. 02:34 ] @
Pa pise na linku sve. Koriste se za "dummy datu" kao sto sam naveo. Ukratko objasnjeno, i na srpski prevedeno "usadjivanje" nekih fiktivnih podataka kao validne unose u bazu podataka. Koriste se pri testiranju aplikacija.
[ Living Light @ 26.09.2019. 03:14 ] @
De, de, Zlatni ,ok,
samo pitam.

Ja verujem da takva pitanja tebe izluđuju,
ali veruj ne pitam za "bezeze", nego zbog toga što ne znam.

Znam šta je dummy-load, ali šta je "dummy data", ne znam,
dok mi neko od Vas ne objasni,

ne ljuti se.
[ Nemanja Avramović @ 26.09.2019. 08:49 ] @
U Laravel ekosistemu, seeder je klasa koja služi za inicijalno popunjavanje baze test podacima.

Evo npr iz jednog projekta na kom radim:

Code:
<?php

use Illuminate\Database\Seeder;

class PatientsTableSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        foreach (\App\Models\Clinic::all() as $clinic) {
            factory(App\Models\Patient::class, 100)
                ->create(['password' => null]);
        }
    }
}


u ModelFactory imam ovo:

Code:
<?php

$factory->define(App\Models\Patient::class, function (Faker\Generator $faker) {
    return [
        'email'              => $faker->safeEmail,
        'first_name'         => $faker->firstName,
        'last_name'          => $faker->lastName,
        'date_of_birth'      => $faker->date(),
        'gender'             => $faker->numberBetween(1, 2),
        'password'           => bcrypt(str_random(10)),
    ];
});


Po setupovanju projekta (uključujući migracije) dovoljno je da pokrenem sledeću komandu i za svaku kliniku u sistemu ću imati 100 random pacijenata:

$ php artisan db:seed --class=PatientsTableSeeder


Tako svaki novi developer (ili novo dev okruženje) može jako brzo da ima popunjenu bazu spremnu za rad.

p.s. Stariji je Laravel, vidim da je sad malo promenjeno kako se definiše model factory
p.p.s. Postoji sličan seeder i za klinike koji se obavezno ispucava pre ovog

[Ovu poruku je menjao Nemanja Avramović dana 26.09.2019. u 10:07 GMT+1]
[ Tpojka @ 26.09.2019. 09:20 ] @
Samo da se doda da (a prevodeći doslovno sa engleskog seed, to seed: sjeme, posijati) nije nužno da to budu test podaci.
Za test podatke je bitan factory al' generalno seeder služi za ubacivanje [ma kakvog tipa] podataka u bazu.
Može se imati sql fajl sa backup podacima izvučen iz baze i kroz raw code ubace podaci u bazu.
Izvršavajući pomenutu artisan komandu, izvršiće se bilo koji kod iz run() metoda.