...
✅ WEB- ja WordPress -uutiset, -teemat, -laajennukset. Täällä jaamme vinkkejä ja parhaita verkkosivustoratkaisuja.

Kuinka tehdä tietokannan kylvö Laravelissa

24

Aiemmin olen julkaissut artikkelin Kuinka kylvää tietokantaa PHP: ssä Faker Libraryn avulla. Tutkiessani tätä aihetta huomasin, että Laravel käyttää myös samaa kirjastoa tietokannan kylvämiseen. Koska olen kirjoittanut tästä aiheesta artikkelin PHP: lle, päätin kirjoittaa viestin myös Laravel-tietokannan kylvöön. Tämä johtuu siitä, että Laravel käyttää omaa prosessiaan tietokannan luomiseen.

Mikä on tietokannan kylvö?

Tietokannan kylvö tarkoittaa tietokantataulukoiden täyttämistä testitiedoilla ohjelmallisesti. Tällä lähestymistavalla voidaan syöttää tuhansia tietueita tietokantaan muutamassa minuutissa. Se on tehokas tapa sen sijaan, että tekisit sen manuaalisesti. Saatat haluta nuken tietojen testaavan sovellustasi, ja tietokannan lisääminen ohjelman avulla säästää paljon aikaa.

Faker-kirjasto

Faker on avoimen lähdekoodin kirjasto, joka tuottaa väärennettyjä tietoja sovelluksesi tietokantaan. Fakeria käyttämällä voidaan lisätä tuhansia merkintöjä tietokantaan muutamassa minuutissa. Tämä kirjasto tallentaa tylsän tiedon syöttötyön kehittäjille. Voit saada melkein mitä tahansa haluamaasi dataa. Kirjasto luo väärennetyn sähköpostiosoitteen, nimen, matkapuhelinnumeron, sanat, lauseet, kappaleet, satunnaisluvut jne. Voit lukea sellaisia ​​tietoja, jotka ne toimittavat dokumentaatiosta.

Laravel asentaa tämän kirjaston sen ytimeen. Tämä tarkoittaa, että sinun ei tarvitse asentaa sitä erikseen. Tästä huolimatta katsotaanpa, miten tietokantojen kylvö tehdään Laravelissa.

Päästä alkuun

Aloittaakseni aion luoda "asiakkaiden" taulukon, jossa on sarakkeiden nimi, sähköpostiosoite ja bio. Näemme yhden pöydän kylvöprosessin. Samalla tavalla käyttäjät voivat kylvää niin monta taulukkoa kuin haluavat.

Luo siirto asiakkaille -taulukko komennolla:

php artisan make:migration create_customers_table

Avaa siirtotiedosto ja lisää sarakkeet ‘ylös’ -menetelmään alla olevan kuvan mukaisesti.

public function up()
{
    Schema::create('customers', function (Blueprint $table) {
        $table->id();
        $table->string('name');
        $table->string('email');
        $table->text('bio');
        $table->timestamps();
    });
}

Suorita siirto-komento, joka luo asiakastaulukon tietokantaan.

php artisan migrate

Luo seuraavaksi malli "Asiakas", joka yhdistää "Asiakkaat" -taulukkoon. Laravel 8.x -käynnistyksen jälkeen mallit luodaan hakemistoon ‘App / Models’. Oletan, että käytät tässä opetusohjelmassa Laravel 8.x -ohjelmaa. Laravelin vanhemmassa versiossa joudut säätämään mallin polkua.

php artisan make:model Customer

Tietokannan kylvö Laravelissa

Tietokannan kylväminen Laravelissa edellyttää sinun suorittavan muutaman vaiheen, jotka ovat kylvökoneiden kirjoittaminen, mallitehtaan luominen ja kylvökoneiden käyttäminen. Tehdään se yksi kerrallaan.

Kylvökoneiden kirjoittaminen

Jos tarkastelet Laravel-tiedostojärjestelmää, huomaat hakemiston database/seeders. Kaikki siemenluokat menevät tämän hakemiston sisään. Siemenluokalla on runmenetelmä, josta voit lisätä tiedot taulukkoon.

Tee siemenluokka CustomerSeeder komennolla:

php artisan make:seeder CustomerSeeder

Kun olet suorittanut tämän komennon, sinun pitäisi nähdä CustomerSeeder.phptiedosto, joka on luotu kohdassa database/seeders. Avaa tämä tiedosto ja runlisää funktioon seuraava koodi.

public function run()
{
    AppModelsCustomer::factory()->count(50)->create()->each(function ($customer) {
        $customer->save();
    });
}

Soitan tässä Asiakas-tehtaalle, jonka luomme seuraavassa vaiheessa. Huomaa, että välitin arvon 50 laskentamenetelmälle. Se tarkoittaa, että 50 riviä tulisi lisätä "asiakas" -taulukkoon. Säädä tätä arvoa haluamallasi tavalla.

Tehtaiden luominen

Koodi, johon olen kirjoittanut, CustomerSeederetsii tehtaita testitulosten saamiseksi. Se tarkoittaa, että meidän on luotava mallitehdas. Annan tehtaalle nimen CustomerFactory. Luo mallitehdas suorittamalla komento.

php artisan make:factory CustomerFactory --model=Customer

Tämä komento luo hakemiston CustomerFactory.phpsisälle database/factories. Avaa tämä tiedosto ja luo määritystapaan testitiedot seuraavasti.

public function definition()
{
    return [
        'name' => $this->faker->name,
        'email' => $this->faker->unique()->safeEmail,
        'bio' => $this->faker->text,
    ];
}

Yllä oleva taulukko palauttaa satunnaisesti valitun nimen, sähköpostiosoitteen ja tekstin.

Käynnissä olevat kylvökoneet

Me kaikki asetimme kylvökoneen ja tehtaan kanssa. Suorita nyt kylvökone alla olevan komennon avulla.

php artisan db:seed --class=CustomerSeeder

Tarkista asiakkaasi taulukko, ja siinä on oltava 50 nukkenimeä.

Yllä oleva komento suorittaa yhden kylvökoneen, jonka ohitimme nimenomaisesti. Oletetaan, että haluat luoda useita kylvökoneita ja suorittaa ne kaikki yhdellä komennolla. Tällaisissa tapauksissa sinun tulisi soittaa kylväjillesi siitä, DatabaseSeederjoka löytyy samasta hakemistosta database/seeders.

public function run()
    {
        $this->call(CustomerSeeder::class);
        // call as many seeders you wish
    }

Käyttäjä voi luoda tarpeidensa mukaan niin monta kylvökonetta ja soittaa heille tällä runmenetelmällä.

Suorita lopuksi kylvökoneet alla olevan komennon avulla.

php artisan db:seed

Se kutsuu kaikki runmenetelmän kylväjät ja suorittaa sen.

Toivon ymmärtävänne tietokantojen kylvämistä Laravelissa. Haluaisin kuulla ajatuksesi ja ehdotuksesi alla olevassa kommenttiosassa.

Aiheeseen liittyvät artikkelit

Tämä verkkosivusto käyttää evästeitä parantaakseen käyttökokemustasi. Oletamme, että olet kunnossa, mutta voit halutessasi kieltäytyä. Hyväksyä Lisätietoja