Contenido del curso
Fundamentos de Laravel
- 3

Qué es Artisan y cómo automatiza Laravel
04:23 min - 4

Rutas básicas en Laravel con web.php
06:44 min - 5

Cómo retornar vistas Blade en Laravel
07:02 min - 6

Plantillas Blade para vistas sin código repetido
06:03 min - 7

Controladores en Laravel con Artisan
07:17 min - 8

Migraciones en Laravel como control de versiones
Viendo ahora - 9

Modelos y factories en Laravel con datos falsos
06:56 min - 10

Consultas a base de datos con Eloquent
08:26 min - 11

Relaciones entre tablas con belongsTo en Laravel
05:37 min
Manos a la obra con nuestro proyecto
- 12

Revisión de arquitectura MVC en Laravel
02:15 min - 13

Instala el login de Laravel con Breeze
05:41 min - 14

Rutas de login y logout en Laravel Breeze
04:22 min - 15

Rutas y vistas con Route::resource en Laravel
03:59 min - 16

Listado de posts con paginación en Laravel
04:36 min - 17

Formulario para eliminar registros en Laravel
04:53 min - 18

Vistas de creación y edición con formulario compartido
06:49 min - 19

Formulario CRUD reutilizable en Laravel
05:02 min - 20

Guardar registros con relaciones en Laravel
06:06 min - 21

Método update en Laravel sin reescribir código
01:44 min - 22

Validación de formularios en Laravel con old()
04:43 min - 23

Validación unique en Laravel sin duplicados
05:32 min
Trabajemos en el diseño web de nuestro proyecto
- 24

Diseño del header con Tailwind y Laravel
06:38 min - 25

Divisor con gradiente en Tailwind CSS
03:50 min - 26

Construye la vista home de tu blog en Laravel
06:36 min - 27

Sección destacada con posicionamiento absoluto en Tailwind
04:15 min - 28

Diseño de página de publicación con Tailwind
02:33 min - 29

Formulario de búsqueda con Laravel y LIKE
04:18 min - 30

Cómo detectar el problema N+1 en Laravel
06:12 min
Cierre
Migraciones en Laravel como control de versiones
Resumen
Las migraciones en Laravel son archivos PHP que definen y versionan la estructura de tu base de datos sin tocarla directamente. Aprenderás a crearlas, ejecutarlas y entender por qué funcionan como un control de versiones para proyectos colaborativos en backend con PHP.
Qué es una migración en Laravel y por qué usarla
Una migración es un archivo que describe el esquema de una tabla y guarda un registro detallado de cada cambio que haces en tu base de datos. En lugar de modificar columnas desde un cliente como phpMyAdmin, escribes el cambio en código PHP y Laravel lo aplica por ti [01:00].
Piensa en este enfoque como un version control aplicado a tu base de datos. Cada archivo de migración incluye en su nombre la fecha y hora de creación, así que puedes rastrear qué se creó, cuándo y en qué orden.
¿Para qué sirve una migración en Laravel? Sirve para definir tablas, columnas e índices desde código PHP. Así mantienes un historial de cambios y replicas la misma estructura en cualquier entorno sin exportar archivos SQL.
Cómo conectar Laravel con tu base de datos
Antes de migrar necesitas una base de datos vacía y la conexión configurada. Desde tu cliente MySQL, conéctate con tu usuario y contraseña, y crea una base de datos nueva, por ejemplo proyecto [02:10].
Luego abre el archivo .env, que es donde Laravel lee la configuración de entorno. En la sección de base de datos define estos valores:
DB_DATABASE: el nombre de la base, en este casoproyecto.DB_USERNAME: tu usuario de MySQL.DB_PASSWORD: tu contraseña, por ejemploroot.DB_HOST: puede serlocalhosto la dirección IP local.
Con esto Laravel ya sabe a dónde apuntar cuando ejecutes los comandos de Artisan.
Cómo ejecutar las migraciones por defecto con PHP Artisan
Artisan es la consola de comandos de Laravel y migrate es el comando que convierte tus archivos en tablas reales. Abre la terminal en la raíz del proyecto y ejecuta:
bash php artisan migrate
Laravel se conecta usando el .env, recorre las migraciones por defecto, e imprime mensajes como Migrating y Migrated para cada tabla, incluida la de usuarios [03:25]. Si revisas tu cliente y actualizas, verás la tabla users con campos como nombre, email y contraseña, exactamente como están descritos en el archivo de migración.
Cómo crear tu primera migración para una tabla Post
Para generar una migración nueva usa el comando make:migration. La convención de nombres importa: el nombre debe empezar con create_ y terminar con _table para que Laravel cree el archivo con el esquema base ya escrito [05:10].
bash php artisan make:migration create_posts_table
Si escribes el comando sin esa convención, Laravel genera el archivo pero los métodos up y down aparecen vacíos, sin la estructura inicial de Schema::create. Por eso conviene seguir el patrón.
Cómo definir columnas con Schema y Blueprint
Dentro del método up Laravel te entrega una variable $table (instancia de Blueprint) con la que defines cada columna. Para la tabla de publicaciones agrega:
$table->string('title');para el título.$table->string('slug')->unique();para la URL amigable, marcada como única.$table->text('body');para el contenido del post.
El método id() crea automáticamente la clave primaria y timestamps() añade los campos created_at y updated_at. Por eso, al revisar la tabla en el cliente, aparecen seis columnas aunque tú solo escribiste tres.
¿Qué hacen los métodos up y down en una migración? El método
upaplica el cambio, como crear una tabla o columna. El métododownrevierte ese cambio. Juntos permiten avanzar y retroceder de versión.
Cómo funciona el control de versiones al volver a migrar
Cuando ejecutas php artisan migrate por segunda vez, Laravel revisa qué migraciones ya corrieron y solo aplica las nuevas. En el ejemplo, al agregar la tabla posts, la consola informa que únicamente migrará esa tabla porque las anteriores ya están registradas [07:40].
Este comportamiento es lo que convierte a las migraciones en una herramienta poderosa para trabajo en equipo. Si compartes tu proyecto con otra persona, no necesitas exportar archivos .sql ni mover esquemas a mano.
¿Cómo replico la base de datos al compartir un proyecto Laravel? Tu compañero clona el repositorio, configura su
.envy ejecutaphp artisan migrate. Laravel reconstruye toda la estructura desde los archivos PHP, idéntica a la tuya.
Buenas prácticas al trabajar con migraciones
Para mantener tu flujo limpio, recuerda estos puntos clave que se desprenden de la clase:
- Crea siempre la base de datos vacía antes de migrar.
- Modifica el esquema desde los archivos de migración, nunca desde el cliente MySQL.
- Usa la convención
create_nombre_tableal generar archivos nuevos. - Aprovecha modificadores como
unique()para reglas a nivel de columna. - Confía en
id()ytimestamps()para columnas estándar.
Ahora te toca a ti: crea tu primera migración para una tabla diferente y cuéntame en los comentarios qué columnas elegiste y qué tipo de datos usaste.