En este tutorial, trabajaremos con un generador de migración de LaravelAl generar nuestras migraciones, a veces puede resultar un poco confuso la forma correcta de agregar columnas o campos a nuestras tablas. Hay una gran cantidad de métodos para usar dentro de las clases Schema y Blueprint para entendernos. Muchas veces, incluso puede tener una base de datos en su lugar, pero le gustaría mover esta instancia a otro host, o simplemente tener un plano de la base de datos en un conjunto de archivos de migración. ¿No sería genial si tuviéramos una forma de manejar esto automáticamente? De hecho lo hacemos ahora gracias al trabajo de barryvdh y ahora de Xethron. Veamos cómo poner esto en acción.


Configura tu entorno de Laravel

  • Paso 1. Lo primero que haremos para esto es instalar las dependencias necesarias en nuestro composer.json archivo. Según las instrucciones de la página de github de Xethron, podemos configurar nuestro composer.jsonarchivo para obtener lo que necesitamos. Hay algunos fragmentos en el enlace anterior, aquí está la totalidad del composer.jsonarchivo utilizado en esta demostración de prueba.

  • Paso 2 . A continuación, simplemente debemos ejecutar una actualización del compositor. En la terminal, simplemente escriba y composer updateluego presione enter.
  • Paso 3. Agregue lo siguiente a la providersmatriz en app.php

  • Paso 4. Configure el archivo .env para que apunte a la base de datos local que tiene las tablas para las que desea crear migraciones. En este ejemplo, apuntaremos a Laravel a una base de datos de WordPress para un ejemplo común.
  • Paso 5. ¡ Ejecute los comandos de migración y prospere!
vagrant @ homestead: ~ $ php artisan migrate:generate
Usando conexión: mysql

Generando migraciones para: wp_commentmeta, wp_comments, wp_links, wp_options, wp_postmeta, wp_posts, wp_term_relationships, wp_term_taxonomy, wp_terms
, wp_usermeta, wp_users
¿Desea registrar estas migraciones en la tabla de migraciones? [S / n] Y
La tabla de migración se creó correctamente.
El siguiente número de lote es: 1. Recomendamos utilizar el número de lote 0 para que se convierta en la “primera” migración [Predeterminado: 0]
Configuración de tablas e índices de migración
Creado:… create_wp_commentmeta_table.php
Creado:… create_wp_comments_table.php
Creado:… create_wp_links_table. php
Creado:… create_wp_options_table.php
Creado:… create_wp_postmeta_table.php
Creado:… create_wp_posts_table.php
Creado:… create_wp_term_relationships_table.php
Creado:… create_wp_term_taxonomy_table.php
Creado:… create_wp_terms_table.php
Creado:… create_wp_usermeta_table.php
Creado:… create_wp_users_table.php

Configuración de migraciones de clave externa

¡Terminado!

¡Auge! Así, tenemos todas nuestras migraciones terminadas. Es un ejemplo un poco sin sentido, pero piense en los casos de uso que tiene. La primera que me viene a la mente es, digamos que tiene una aplicación construida en otro marco. Existe una base de datos para la que le gustaría crear migraciones rápidamente, para que luego pueda pasar a escribir el código de Laravel. Con esta herramienta, puede hacer precisamente eso. Solo como referencia, aquí está el resultado del código fuente de migración que se generó para nosotros en este ejemplo.

create_wp_commentmeta_table.php fuente

create_wp_comments_table.php fuente

create_wp_links_table.php fuente

create_wp_options_table.php fuente

create_wp_postmeta_table.php fuente

create_wp_posts_table.php fuente

create_wp_term_relationships_table.php fuente

create_wp_term_taxonomy_table.php fuente

create_wp_terms_table.php fuente

create_wp_usermeta_table.php fuente

create_wp_users_table.php fuente

Conclusión del generador de migración de Laravel

Como podemos ver, este es un generador de migración de Laravel realmente genial que creó la comunidad. Es una excelente manera de realizar ingeniería inversa en bases de datos existentes, así como de ayudar a aprender sobre cómo crear migraciones. Los archivos anteriores nos brindan una buena descripción general de los diversos métodos que podemos usar fuera de la instancia $ table en nuestros archivos de migración.