una type migraciones migracion instalar especifica ejecutar drop column change php laravel laravel-5 laravel-migrations

php - type - ¿Cómo funcionan las migraciones de Laravel?



laravel migration change column type (3)

Soy totalmente nuevo en este tipo de marco. Vengo del desarrollo PHP de barebones y parece que no puedo encontrar una guía fácil de entender sobre lo que realmente hacen las migraciones.

Estoy tratando de crear un proyecto que ya tiene una base de datos existente. Lo he usado: https://github.com/Xethron/migrations-generator[1] pero al hacer cambios en el esquema a través de las migraciones parece que se escuchan errores, lo que significa que no tengo idea de lo que estoy haciendo.

Realmente necesito un análisis simple de lo que realmente hacen las migraciones, cómo afectan la base de datos y cualquier otra cosa que piense que podría ayudar a un principiante absoluto.


Imagine que está trabajando en un proyecto con otros desarrolladores. A medida que los desarrolladores agregan cada vez más funciones, también deben agregar más y más tablas, columnas, eliminar columnas, cambiar los tipos de datos de columna, etc.

Esto puede perder el control de forma rápida y fácil. Si se le pasó algo de SQL de un desarrollador, es posible que el SQL de otro desarrollador no funcione correctamente. También se convierte potencialmente en una enorme pérdida de tiempo al tratar de ordenar un montón de archivos SQL tratando de descubrir cuáles te has perdido. Solo es cuestión de tiempo que todos en el equipo de desarrollo estén trabajando con diferentes bases de datos o que Dios no lo permita, alguien rompe la base de datos de producción. Con las migraciones, solo necesita ejecutar php artisan migrate en la línea de comandos y todos los cambios en la base de datos serán atendidos por usted.

Esto es básicamente por qué las migraciones son útiles. No voy a entrar en los conceptos básicos de cómo funcionan porque Kryten ya tiene una buena reseña aquí.


Una explicación simple de las migraciones:

Son un sistema de control de versiones para su esquema de base de datos.

Imagine que está configurando una nueva aplicación. Lo primero que debes hacer es crear una tabla ( mytable ) con un par de columnas. Esta será su primera migración. Ejecuta la migración ( php artisan migrate ) cuando comienza a trabajar en su aplicación y ¡ listo ! Tienes una nueva tabla en tu base de datos.

Algún tiempo después, usted decide que necesita una nueva columna en su tabla. Usted crea una migración ( php artisan make:migration en Laravel 5) y se crea un nuevo archivo de migración para usted. Actualizas el código en esa migración, ejecutas php artisan migrate nuevamente y tienes una nueva columna en tu tabla.

Ok, esa es la idea básica detrás de las migraciones. Pero hay más ...

Supongamos, luego, que se da cuenta de que cometió un error al crear la última migración. Ya lo ha ejecutado, por lo que su base de datos ha cambiado. ¿Cómo lo arreglas? Bueno, si escribió su migración correctamente e implementó el método down , puede hacer php artisan migrate:rollback y revertirá la migración.

¿Cómo hace Laravel esto? Al realizar un seguimiento de sus migraciones en una tabla de base de datos especial. El comando php artisan migrate:install lo configurará para que Laravel pueda gestionar estas migraciones.

Con el tiempo, a medida que su aplicación crezca, agregará más y más migraciones. Laravel le brinda una manera de dar un paso adelante y atrás a través de sus migraciones, según sea necesario, para asegurarse de que su base de datos esté en el estado que usted necesite mientras está trabajando.

Consulte la lista de comandos de artisan con php artisan . También puede solicitar ayuda con un comando en particular con php artisan help <command> .


Las migraciones son un tipo de control de versión para su base de datos. Permiten que un equipo modifique el esquema de la base de datos y se mantenga actualizado en el estado del esquema actual. Las migraciones generalmente se combinan con el generador de esquemas para administrar fácilmente el esquema de su aplicación.

Con las migraciones, no necesita crear tablas en phpMyAdmin, puede hacerlo en Laravel. Aquí hay un ejemplo para crear una tabla de usuario:

class CreateUsersTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create(''users'', function(Blueprint $table) { $table->increments(''id''); // autoincrement id field $table->string(''name''); // string field $table->string(''lastname''); $table->string(''title''); $table->string(''email'')->unique(); // unique string field $table->string(''password'', 60); // string field with max 60 characters $table->boolean(''Status'')->default(0); // string field with default value 0 $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::drop(''users''); } }

Este código creamos tabla con campos como "nombre", "apellido" ... dijimos en nuestro código de Laravel que son de tipo cadena cuando la migración está completa tenemos tabla completa en databese con estos campos.

Ejecute una migración para crear una tabla

Para crear una migración, puede usar el comando make: migration en la CLI de Artisan (interfaz de línea de comando de artesano):

php artisan make:migration create_users_table

o

php artisan make:migration create_users_table --create=users

Ejecuta una migración para alterar la tabla

Cuando necesite hacer algunos cambios en el ejemplo de la tabla de la base de datos: agregue la votación del campo a la tabla del usuario, puede hacer esto en su código de Laravel sin tocar el código SQL

php artisan make:migration add_votes_to_users_table --table=users

Revertir la última operación de migración

Si comete un error e hizo algo incorrecto, siempre puede retroceder para devolver la base de datos en el estado anterior.

php artisan migrate:rollback

Revertir todas las migraciones

php artisan migrate:reset

Revertir todas las migraciones y ejecutarlas de nuevo

php artisan migrate:refresh php artisan migrate:refresh --seed

Una de las mejores ventajas de las migraciones es crear una base de datos sin tocar el código SQL. Puede hacer una base de datos completa con una relación en código PHP y luego migrarla a MySQL, PL / SQL, MSSQL o cualquier otra base de datos.

También recomiendo la serie fundamental gratuita Laravel 5 , en el episodio 7 se puede escuchar más sobre las migraciones.