{"id":28891,"date":"2021-06-02T19:11:00","date_gmt":"2021-06-02T16:11:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=28891"},"modified":"2021-10-17T16:30:22","modified_gmt":"2021-10-17T13:30:22","slug":"como-hacer-la-siembra-de-bases-de-datos-en-laravel","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/es\/como-hacer-la-siembra-de-bases-de-datos-en-laravel\/","title":{"rendered":"C\u00f3mo hacer la siembra de bases de datos en Laravel"},"content":{"rendered":"<p>En el pasado, publiqu\u00e9 un art\u00edculo sobre <a href=\"https:\/\/themewp.inform.click\/es\/como-sembrar-la-base-de-datos-usando-php-faker-library\/\" title=\"c\u00f3mo sembrar una base de datos en PHP usando la biblioteca Faker\" >c\u00f3mo sembrar una base de datos en PHP usando la biblioteca Faker<\/a>. Mientras investigaba este tema, descubr\u00ed que Laravel tambi\u00e9n usa la misma biblioteca para sembrar la base de datos. Como escrib\u00ed un art\u00edculo sobre este tema para PHP, decid\u00ed escribir una publicaci\u00f3n sobre la siembra de la base de datos de Laravel tambi\u00e9n. Esto se debe a que Laravel usa su propio proceso para generar la base de datos.<\/p>\n<h3>\u00bfQu\u00e9 es la siembra de bases de datos?<\/h3>\n<p>La siembra de la base de datos significa llenar las tablas de la base de datos con los datos de prueba mediante programaci\u00f3n. Con este enfoque, se pueden ingresar miles de registros en la base de datos en unos pocos minutos. Es una forma eficiente en lugar de hacerlo manualmente. Es posible que desee datos ficticios para probar su aplicaci\u00f3n y la siembra de la base de datos a trav\u00e9s del programa le ahorra un mont\u00f3n de tiempo.<\/p>\n<h3>Biblioteca de falsificadores<\/h3>\n<p><a href=\"https:\/\/github.com\/fzaninotto\/Faker\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Faker<\/a> es una biblioteca de c\u00f3digo abierto que genera datos falsos para la base de datos de su aplicaci\u00f3n. Con Faker, se pueden insertar miles de entradas en la base de datos en un par de minutos. Esta biblioteca ahorra un aburrido trabajo de entrada de datos para los desarrolladores. Puede obtener casi cualquier tipo de datos que desee. La biblioteca genera un correo electr\u00f3nico falso, nombre, n\u00famero de tel\u00e9fono m\u00f3vil, palabras, oraciones, p\u00e1rrafos, n\u00fameros aleatorios, etc. Puede leer el tipo de datos que proporcionan en la <a href=\"https:\/\/github.com\/fzaninotto\/Faker\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">documentaci\u00f3n<\/a>.<\/p>\n<p>Laravel instala esta biblioteca en su n\u00facleo. Eso significa que no es necesario instalarlo por separado. Dicho esto, echemos un vistazo a c\u00f3mo sembrar bases de datos en Laravel.<\/p>\n<h3>Empezando<\/h3>\n<p>Para comenzar, voy a crear una tabla de &#8216;clientes&#8217; con el nombre de las columnas, el correo electr\u00f3nico y la biograf\u00eda. Veremos el proceso de sembrar la mesa \u00fanica. De la misma forma, los usuarios pueden sembrar tantas tablas como quieran.<\/p>\n<p>Cree una tabla de migraci\u00f3n para clientes usando el comando:<\/p>\n<pre><code>php artisan make:migration create_customers_table<\/code><\/pre>\n<p>Abra el archivo de migraci\u00f3n y agregue las columnas al m\u00e9todo &#8216;up&#8217; como se muestra a continuaci\u00f3n.<\/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>Ejecute el comando migrate que crear\u00e1 una tabla de &#8216;clientes&#8217; en su base de datos.<\/p>\n<pre><code>php artisan migrate<\/code><\/pre>\n<p>A continuaci\u00f3n, cree un modelo de &#8216;Cliente&#8217; que se corresponda con la tabla de &#8216;clientes&#8217;. Al iniciar Laravel 8.x, sus modelos se crear\u00e1n dentro del directorio &#8216;Aplicaci\u00f3n \/ Modelos&#8217;. Para este tutorial, supongo que est\u00e1s usando Laravel 8.x. En la versi\u00f3n anterior de Laravel, necesitas ajustar la ruta del modelo.<\/p>\n<pre><code>php artisan make:model Customer<\/code><\/pre>\n<h3>Siembra de base de datos en Laravel<\/h3>\n<p>Sembrar una base de datos en Laravel requiere que siga algunos pasos que son escribir sembradoras, crear una f\u00e1brica de modelos y ejecutar sembradoras. Hag\u00e1moslo uno por uno.<\/p>\n<h4>Sembradoras de escritura<\/h4>\n<p>Si observa el sistema de archivos de Laravel, ver\u00e1 el directorio <code>database\/seeders<\/code>. Todas las clases semilla ir\u00e1n dentro de este directorio. Una clase semilla tiene el <code>run<\/code>m\u00e9todo desde donde puede insertar los datos en la tabla.<\/p>\n<p>Cree una clase semilla CustomerSeeder usando el comando:<\/p>\n<pre><code>php artisan make:seeder CustomerSeeder<\/code><\/pre>\n<p>Despu\u00e9s de ejecutar este comando, deber\u00eda ver el <code>CustomerSeeder.php<\/code>archivo creado en <code>database\/seeders<\/code>. Abra este archivo y a la <code>run<\/code>funci\u00f3n agregue el siguiente c\u00f3digo.<\/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>Aqu\u00ed estoy llamando a la f\u00e1brica de Clientes que crearemos en el siguiente paso. Observe que pas\u00e9 el valor como 50 al m\u00e9todo &#8216;count&#8217;. Significa que se deben insertar 50 filas en la tabla &#8216;clientes&#8217;. Ajuste este valor como desee.<\/p>\n<h4>Creaci\u00f3n de f\u00e1bricas<\/h4>\n<p>El c\u00f3digo que he escrito <code>CustomerSeeder<\/code>buscar\u00e1 una f\u00e1brica para obtener los datos de prueba. Significa que tenemos que crear una f\u00e1brica de modelos. Dar\u00e9 un nombre a la f\u00e1brica como CustomerFactory. Ejecute el comando para generar la f\u00e1brica de modelos.<\/p>\n<pre><code>php artisan make:factory CustomerFactory --model=Customer<\/code><\/pre>\n<p>Este comando crear\u00e1 un <code>CustomerFactory.php<\/code>dentro del <code>database\/factories<\/code>directorio. Abra este archivo y en el m\u00e9todo de definici\u00f3n genere datos de prueba de la siguiente manera.<\/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>La matriz anterior devuelve un nombre, correo electr\u00f3nico y texto seleccionados al azar para la biograf\u00eda.<\/p>\n<h4>Sembradoras en funcionamiento<\/h4>\n<p>Todos fijamos con la sembradora y la f\u00e1brica. Ahora ejecute nuestra sembradora usando el siguiente comando.<\/p>\n<pre><code>php artisan db:seed --class=CustomerSeeder<\/code><\/pre>\n<p>Verifique su tabla de &#8216;clientes&#8217; y deber\u00eda tener las 50 entradas ficticias insertadas.<\/p>\n<p>El comando anterior ejecuta una sola sembradora que pasamos expl\u00edcitamente. Supongamos que desea crear varias sembradoras y ejecutarlas todas con un solo comando. En tales casos, debe llamar a sus sembradoras desde el <code>DatabaseSeeder<\/code>que se encuentra en el mismo directorio <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>El usuario puede crear tantas sembradoras seg\u00fan sus requisitos y llamarlas desde este <code>run<\/code>m\u00e9todo.<\/p>\n<p>Finalmente, ejecute las sembradoras usando el siguiente comando.<\/p>\n<pre><code>php artisan db:seed<\/code><\/pre>\n<p>Llamar\u00e1 a todas las sembradoras del <code>run<\/code>m\u00e9todo y lo ejecutar\u00e1.<\/p>\n<p>Espero que entiendas sobre la siembra de bases de datos en Laravel. Me gustar\u00eda escuchar sus pensamientos y sugerencias en la secci\u00f3n de comentarios a continuaci\u00f3n.<\/p>\n<h4>Art\u00edculos relacionados<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/es\/integracion-de-paypal-payments-pro-en-laravel\/\" title=\"Integraci\u00f3n de PayPal Payments Pro en Laravel\">Integraci\u00f3n de PayPal Payments Pro en Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/es\/como-crear-honeypot-para-combatir-el-spam-de-formularios-en-laravel\/\" title=\"Crea Honeypot para combatir el spam de formularios en Laravel\">Crea Honeypot para combatir el spam de formularios en Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/es\/una-guia-para-agregar-google-recaptcha-v3-a-su-sitio-web-de-laravel\/\" title=\"Agregar Google reCAPTCHA v3 a su sitio web de Laravel\">Agregar Google reCAPTCHA v3 a su sitio web de Laravel<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fuente de grabaci\u00f3n:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u00bfEst\u00e1 buscando siembra de bases de datos en Laravel? En este art\u00edculo, muestro c\u00f3mo crear y ejecutar la siembra en la aplicaci\u00f3n Laravel. Biblioteca de falsificadores<\/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":[495],"tags":[849],"class_list":["post-28891","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel","tag-affiai-es"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts\/28891","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/comments?post=28891"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts\/28891\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/media\/21644"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/media?parent=28891"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/categories?post=28891"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/tags?post=28891"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}