Migraciones de Laravel: Herramientas ahorro de tiempo

[vc_row el_class=”blog-info”][vc_column][vc_single_image source=”featured_image” img_size=”full” style=”vc_box_rounded”][vc_empty_space height=”40px”][vc_row_inner][vc_column_inner width=”1/6″][/vc_column_inner][vc_column_inner width=”2/3″][vc_column_text el_class=”font-weight-bold”]

Herramientas de ahorro de tiempo de Laravel: modelos, migraciones, fábricas y sembradoras

Acelerar el desarrollo con migraciones de Laravel

[/vc_column_text][vc_empty_space height=”40px”][/vc_column_inner][vc_column_inner width=”1/6″][/vc_column_inner][/vc_row_inner][vc_row_inner][vc_column_inner width=”1/6″][/vc_column_inner][vc_column_inner width=”2/3″][vc_column_text]


Introducción

Desde Laravel 4, he estado creando migraciones para administrar cambios en la base de datos en varios sistemas como Postgres, MySQL, MariaDB y MSSQL. Si bien ha habido mejoras para agregar fábricas y sembradoras, he sido propenso a ejecutar varios comandos para crear estos archivos. Definamos una migración de Laravel.

Una migración de Laravel es una forma de administrar los cambios de la base de datos, como crear o modificar tablas, de manera estructurada y organizada. Cada archivo de migración representa un único conjunto de cambios.

  • Laravel también proporciona comandos para ejecutar o revertir migraciones. Esto permite a los desarrolladores:
    • modificar fácilmente el esquema de la base de datos y compartir
    • aplicar esos cambios en diferentes entornos e instancias.

Un escenario de la vida real

Su jefe o cliente se acerca a usted con un pequeño proyecto en el que se debe crear un sistema de afiliados y requerirá tablas de affiliates y leads potenciales. Los afiliados son un tipo de usuarios. por lo que tendrán una tabla de affiliates dedicada y tendrán una relación externa con la tabla de users. Los afiliados:

  • Pueden referir a otros al sistema mediante un formulario de clientes potenciales en el sitio web de front-end.
  • Realizarán un seguimiento de los afiliados utilizando URL únicas que contienen un enlace de referencia de afiliado para atribuir el cliente potencial correctamente.

El formulario de front-end le pedirá el nombre y la dirección de correo electrónico del cliente potencial. Cuando un prospecto ingresa su información, su nombre y dirección de correo electrónico se almacenarán en la tabla de leads con una relación con el afiliado en la tabla de affiliates. Cuando los afiliados inicien sesión en su portal, verán una sección de Clientes potenciales que enumera todos los clientes potenciales que refirieron.

Esta simple idea requerirá la migración de dos tablas en nuestra base de datos de affiliates y leads. También necesitamos un modelo para que las tablas interactúen con los registros en las tablas de nuestra aplicación.

También es conveniente crear fábricas y sembradoras. Esto ayudará a generar afiliados y clientes potenciales al instante en la base de datos. He encontrado esto invaluable desde una perspectiva de desarrollo. Se pueden usar para sembrar una base de datos rápidamente para tener datos con los que trabajar en el front-end o durante las pruebas automatizadas. Una forma tradicional de realizar esta tarea es hacer algo como esto.

Creación de migraciones, modelos, factorías y sembradores

Primero, realice las migraciones para las tablas de affiliatesleads potenciales en la base de datos.

php artisan make:migration add_affiliates_table
php artisan make:migration add_leads_table

Asegúrese de tener en cuenta las claves externas. Por ejemplo, la tabla de  leads potenciales tiene una clave externa affiliate_id que hace referencia a la tabla de affiliates. Debido a esta relación externa, no puede crear la tabla de leads potenciales antes que la tabla de affiliates. Ahora, vamos a hacer los modelos.


Gracias por llegar hasta aquí, si encuentras esto útil no olvides dejar un👍🏼y suscribirse para recibir más contenido.

Si le interesa, puede echar un vistazo a algunos de los otros artículos que he escrito recientemente sobre Node.js y AWS Lambda:

[/vc_column_text][/vc_column_inner][vc_column_inner width=”1/6″][/vc_column_inner][/vc_row_inner][/vc_column][/vc_row][vc_row el_class=”social-info”][vc_column width=”1/6″][/vc_column][vc_column width=”2/3″][vc_row_inner][vc_column_inner width=”1/2″][vc_column_text][social_share_button themes=’theme1′][/vc_column_text][/vc_column_inner][vc_column_inner el_class=”youtube-inner-col” width=”1/2″][vc_column_text][likebtn theme=”youtube” lang=”auto” show_like_label=”0″ white_label=”1″ alignment=”right”][/vc_column_text][/vc_column_inner][/vc_row_inner][vc_row_inner el_class=”social-info-inner”][vc_column_inner width=”1/4″][vc_single_image image=”921″][/vc_column_inner][vc_column_inner width=”3/4″][vc_column_text]

Diego Pacheco

Ingeniero en Sitemas, MBA (Babson College). Desarrollador PHP/Java/JavaScript. Fundador & CEO de EpicStudio. Entusiasta de las tecnologías web (JavaScript, Vue, Laravel, AWS, Docker) Viajes, Negocios, Surf y Growth.[/vc_column_text][asvc_list_item icon_fontawesome=”fa fa-calendar-o” icon_size=”14px”]Programar una reunión[/asvc_list_item][/vc_column_inner][/vc_row_inner][/vc_column][vc_column width=”1/6″][/vc_column][/vc_row][vc_row][vc_column][vc_column_text]

Recent Post

[/vc_column_text][lvca_posts_carousel posts_query=”size:3|order_by:rand|post_type:post” image_linkable=”true” image_size=”full” taxonomy_chosen=”post_tag” display_title=”true” display_post_date=”true” display_summary=”true” autoplay_speed=”3000″ animation_speed=”300″ display_columns=”3″ scroll_columns=”3″ gutter=”3″ tablet_display_columns=”2″ tablet_scroll_columns=”2″ tablet_gutter=”3″ tablet_width=”800″ mobile_display_columns=”1″ mobile_scroll_columns=”1″ mobile_gutter=”3″ mobile_width=”480″][vc_empty_space height=”20px”][/vc_column][/vc_row]