{"id":25212,"date":"2021-06-02T19:12:00","date_gmt":"2021-06-02T16:12:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=25212"},"modified":"2021-10-17T20:29:00","modified_gmt":"2021-10-17T17:29:00","slug":"kuinka-tehda-tietokannan-kylvo-laravelissa","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/fi\/kuinka-tehda-tietokannan-kylvo-laravelissa\/","title":{"rendered":"Kuinka tehd\u00e4 tietokannan kylv\u00f6 Laravelissa"},"content":{"rendered":"<p>Aiemmin olen julkaissut artikkelin <a href=\"https:\/\/themewp.inform.click\/fi\/kuinka-kylvaa-tietokantaa-php-faker-kirjastolla\/\" title=\"Kuinka kylv\u00e4\u00e4 tietokantaa PHP: ss\u00e4 Faker Libraryn avulla\" >Kuinka kylv\u00e4\u00e4 tietokantaa PHP: ss\u00e4 Faker Libraryn avulla<\/a>. Tutkiessani t\u00e4t\u00e4 aihetta huomasin, ett\u00e4 Laravel k\u00e4ytt\u00e4\u00e4 my\u00f6s samaa kirjastoa tietokannan kylv\u00e4miseen. Koska olen kirjoittanut t\u00e4st\u00e4 aiheesta artikkelin PHP: lle, p\u00e4\u00e4tin kirjoittaa viestin my\u00f6s Laravel-tietokannan kylv\u00f6\u00f6n. T\u00e4m\u00e4 johtuu siit\u00e4, ett\u00e4 Laravel k\u00e4ytt\u00e4\u00e4 omaa prosessiaan tietokannan luomiseen.<\/p>\n<h3>Mik\u00e4 on tietokannan kylv\u00f6?<\/h3>\n<p>Tietokannan kylv\u00f6 tarkoittaa tietokantataulukoiden t\u00e4ytt\u00e4mist\u00e4 testitiedoilla ohjelmallisesti. T\u00e4ll\u00e4 l\u00e4hestymistavalla voidaan sy\u00f6tt\u00e4\u00e4 tuhansia tietueita tietokantaan muutamassa minuutissa. Se on tehokas tapa sen sijaan, ett\u00e4 tekisit sen manuaalisesti. Saatat haluta nuken tietojen testaavan sovellustasi, ja tietokannan lis\u00e4\u00e4minen ohjelman avulla s\u00e4\u00e4st\u00e4\u00e4 paljon aikaa.<\/p>\n<h3>Faker-kirjasto<\/h3>\n<p><a href=\"https:\/\/github.com\/fzaninotto\/Faker\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Faker<\/a> on avoimen l\u00e4hdekoodin kirjasto, joka tuottaa v\u00e4\u00e4rennettyj\u00e4 tietoja sovelluksesi tietokantaan. Fakeria k\u00e4ytt\u00e4m\u00e4ll\u00e4 voidaan lis\u00e4t\u00e4 tuhansia merkint\u00f6j\u00e4 tietokantaan muutamassa minuutissa. T\u00e4m\u00e4 kirjasto tallentaa tyls\u00e4n tiedon sy\u00f6tt\u00f6ty\u00f6n kehitt\u00e4jille. Voit saada melkein mit\u00e4 tahansa haluamaasi dataa. Kirjasto luo v\u00e4\u00e4rennetyn s\u00e4hk\u00f6postiosoitteen, nimen, matkapuhelinnumeron, sanat, lauseet, kappaleet, satunnaisluvut jne. Voit lukea sellaisia \u200b\u200btietoja, jotka ne toimittavat <a href=\"https:\/\/github.com\/fzaninotto\/Faker\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">dokumentaatiosta<\/a>.<\/p>\n<p>Laravel asentaa t\u00e4m\u00e4n kirjaston sen ytimeen. T\u00e4m\u00e4 tarkoittaa, ett\u00e4 sinun ei tarvitse asentaa sit\u00e4 erikseen. T\u00e4st\u00e4 huolimatta katsotaanpa, miten tietokantojen kylv\u00f6 tehd\u00e4\u00e4n Laravelissa.<\/p>\n<h3>P\u00e4\u00e4st\u00e4 alkuun<\/h3>\n<p>Aloittaakseni aion luoda &quot;asiakkaiden&quot; taulukon, jossa on sarakkeiden nimi, s\u00e4hk\u00f6postiosoite ja bio. N\u00e4emme yhden p\u00f6yd\u00e4n kylv\u00f6prosessin. Samalla tavalla k\u00e4ytt\u00e4j\u00e4t voivat kylv\u00e4\u00e4 niin monta taulukkoa kuin haluavat.<\/p>\n<p>Luo siirto asiakkaille -taulukko komennolla:<\/p>\n<pre><code>php artisan make:migration create_customers_table<\/code><\/pre>\n<p>Avaa siirtotiedosto ja lis\u00e4\u00e4 sarakkeet &#8217;yl\u00f6s&#8217; -menetelm\u00e4\u00e4n alla olevan kuvan mukaisesti.<\/p>\n<pre><code>public function up()\n{\n\u00a0\u00a0\u00a0\u00a0Schema::create('customers', function (Blueprint $table) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$table-&gt;id();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$table-&gt;string('name');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$table-&gt;string('email');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$table-&gt;text('bio');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$table-&gt;timestamps();\n\u00a0\u00a0\u00a0\u00a0});\n}<\/code><\/pre>\n<p>Suorita siirto-komento, joka luo asiakastaulukon tietokantaan.<\/p>\n<pre><code>php artisan migrate<\/code><\/pre>\n<p>Luo seuraavaksi malli &quot;Asiakas&quot;, joka yhdist\u00e4\u00e4 &quot;Asiakkaat&quot; -taulukkoon. Laravel 8.x -k\u00e4ynnistyksen j\u00e4lkeen mallit luodaan hakemistoon &#8217;App \/ Models&#8217;. Oletan, ett\u00e4 k\u00e4yt\u00e4t t\u00e4ss\u00e4 opetusohjelmassa Laravel 8.x -ohjelmaa. Laravelin vanhemmassa versiossa joudut s\u00e4\u00e4t\u00e4m\u00e4\u00e4n mallin polkua.<\/p>\n<pre><code>php artisan make:model Customer<\/code><\/pre>\n<h3>Tietokannan kylv\u00f6 Laravelissa<\/h3>\n<p>Tietokannan kylv\u00e4minen Laravelissa edellytt\u00e4\u00e4 sinun suorittavan muutaman vaiheen, jotka ovat kylv\u00f6koneiden kirjoittaminen, mallitehtaan luominen ja kylv\u00f6koneiden k\u00e4ytt\u00e4minen. Tehd\u00e4\u00e4n se yksi kerrallaan.<\/p>\n<h4>Kylv\u00f6koneiden kirjoittaminen<\/h4>\n<p>Jos tarkastelet Laravel-tiedostoj\u00e4rjestelm\u00e4\u00e4, huomaat hakemiston <code>database\/seeders<\/code>. Kaikki siemenluokat menev\u00e4t t\u00e4m\u00e4n hakemiston sis\u00e4\u00e4n. Siemenluokalla on <code>run<\/code>menetelm\u00e4, josta voit lis\u00e4t\u00e4 tiedot taulukkoon.<\/p>\n<p>Tee siemenluokka CustomerSeeder komennolla:<\/p>\n<pre><code>php artisan make:seeder CustomerSeeder<\/code><\/pre>\n<p>Kun olet suorittanut t\u00e4m\u00e4n komennon, sinun pit\u00e4isi n\u00e4hd\u00e4 <code>CustomerSeeder.php<\/code>tiedosto, joka on luotu kohdassa <code>database\/seeders<\/code>. Avaa t\u00e4m\u00e4 tiedosto ja <code>run<\/code>lis\u00e4\u00e4 funktioon seuraava koodi.<\/p>\n<pre><code>public function run()\n{\n\u00a0\u00a0\u00a0\u00a0AppModelsCustomer::factory()-&gt;count(50)-&gt;create()-&gt;each(function ($customer) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$customer-&gt;save();\n\u00a0\u00a0\u00a0\u00a0});\n}<\/code><\/pre>\n<p>Soitan t\u00e4ss\u00e4 Asiakas-tehtaalle, jonka luomme seuraavassa vaiheessa. Huomaa, ett\u00e4 v\u00e4litin arvon 50 laskentamenetelm\u00e4lle. Se tarkoittaa, ett\u00e4 50 rivi\u00e4 tulisi lis\u00e4t\u00e4 &quot;asiakas&quot; -taulukkoon. S\u00e4\u00e4d\u00e4 t\u00e4t\u00e4 arvoa haluamallasi tavalla.<\/p>\n<h4>Tehtaiden luominen<\/h4>\n<p>Koodi, johon olen kirjoittanut, <code>CustomerSeeder<\/code>etsii tehtaita testitulosten saamiseksi. Se tarkoittaa, ett\u00e4 meid\u00e4n on luotava mallitehdas. Annan tehtaalle nimen CustomerFactory. Luo mallitehdas suorittamalla komento.<\/p>\n<pre><code>php artisan make:factory CustomerFactory --model=Customer<\/code><\/pre>\n<p>T\u00e4m\u00e4 komento luo hakemiston <code>CustomerFactory.php<\/code>sis\u00e4lle <code>database\/factories<\/code>. Avaa t\u00e4m\u00e4 tiedosto ja luo m\u00e4\u00e4ritystapaan testitiedot seuraavasti.<\/p>\n<pre><code>public function definition()\n{\n\u00a0\u00a0\u00a0\u00a0return [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'name' =&gt; $this-&gt;faker-&gt;name,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'email' =&gt; $this-&gt;faker-&gt;unique()-&gt;safeEmail,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'bio' =&gt; $this-&gt;faker-&gt;text,\n\u00a0\u00a0\u00a0\u00a0];\n}<\/code><\/pre>\n<p>Yll\u00e4 oleva taulukko palauttaa satunnaisesti valitun nimen, s\u00e4hk\u00f6postiosoitteen ja tekstin.<\/p>\n<h4>K\u00e4ynniss\u00e4 olevat kylv\u00f6koneet<\/h4>\n<p>Me kaikki asetimme kylv\u00f6koneen ja tehtaan kanssa. Suorita nyt kylv\u00f6kone alla olevan komennon avulla.<\/p>\n<pre><code>php artisan db:seed --class=CustomerSeeder<\/code><\/pre>\n<p>Tarkista asiakkaasi taulukko, ja siin\u00e4 on oltava 50 nukkenime\u00e4.<\/p>\n<p>Yll\u00e4 oleva komento suorittaa yhden kylv\u00f6koneen, jonka ohitimme nimenomaisesti. Oletetaan, ett\u00e4 haluat luoda useita kylv\u00f6koneita ja suorittaa ne kaikki yhdell\u00e4 komennolla. T\u00e4llaisissa tapauksissa sinun tulisi soittaa kylv\u00e4jillesi siit\u00e4, <code>DatabaseSeeder<\/code>joka l\u00f6ytyy samasta hakemistosta <code>database\/seeders<\/code>.<\/p>\n<pre><code>public function run()\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$this-&gt;call(CustomerSeeder::class);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ call as many seeders you wish\n\u00a0\u00a0\u00a0\u00a0}<\/code><\/pre>\n<p>K\u00e4ytt\u00e4j\u00e4 voi luoda tarpeidensa mukaan niin monta kylv\u00f6konetta ja soittaa heille t\u00e4ll\u00e4 <code>run<\/code>menetelm\u00e4ll\u00e4.<\/p>\n<p>Suorita lopuksi kylv\u00f6koneet alla olevan komennon avulla.<\/p>\n<pre><code>php artisan db:seed<\/code><\/pre>\n<p>Se kutsuu kaikki <code>run<\/code>menetelm\u00e4n kylv\u00e4j\u00e4t ja suorittaa sen.<\/p>\n<p>Toivon ymm\u00e4rt\u00e4v\u00e4nne tietokantojen kylv\u00e4mist\u00e4 Laravelissa. Haluaisin kuulla ajatuksesi ja ehdotuksesi alla olevassa kommenttiosassa.<\/p>\n<h4>Aiheeseen liittyv\u00e4t artikkelit<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/fi\/paypal-payments-pro-integraatio-laravelissa\/\" title=\"PayPal Payments Pro -integraatio Laravelissa\">PayPal Payments Pro -integraatio Laravelissa<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fi\/kuinka-luoda-honeypot-taistelulomakkeen-roskapostia-vastaan-laravelissa\/\" title=\"Luo Honeypot taistelulomakkeiden roskapostia vastaan \u200b\u200bLaravelissa\">Luo Honeypot taistelulomakkeiden roskapostia vastaan \u200b\u200bLaravelissa<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fi\/opas-google-recaptcha-v3-n-lisaamisesta-laravel-verkkosivustoosi\/\" title=\"Google reCAPTCHA v3: n lis\u00e4\u00e4minen Laravel-verkkosivustoosi\">Google reCAPTCHA v3: n lis\u00e4\u00e4minen Laravel-verkkosivustoosi<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Etsitk\u00f6 tietokantojen kylv\u00e4mist\u00e4 Laravelissa? T\u00e4ss\u00e4 artikkelissa n\u00e4yt\u00e4n kuinka luoda ja suorittaa kylv\u00f6 Laravel-sovelluksessa. Faker-kirjasto<\/p>\n","protected":false},"author":1,"featured_media":21644,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[499],"tags":[843],"class_list":["post-25212","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel","tag-affiai-fi"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/posts\/25212","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/comments?post=25212"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/posts\/25212\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/media\/21644"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/media?parent=25212"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/categories?post=25212"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/tags?post=25212"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}