una tabla seeder modificar migrar migraciones migracion instalar especifica ejecutar crear como campo cambiar agregar laravel-4 eloquent fluent

laravel-4 - tabla - migrar laravel



migraciĆ³n de laravel reorganizando el orden de las columnas (4)

Intenta esto, espero que te ayude a encontrar la solución correcta:

public function up() { DB::statement("ALTER TABLE example MODIFY COLUMN foo DATE AFTER bar"); } public function down() { DB::statement("ALTER TABLE example MODIFY COLUMN foo DATE AFTER bar"); }

Cuando crea una nueva columna en una tabla, puede usar -> después (''nombre de columna'') para dictar a dónde va. ¿Cómo puedo crear una migración que reordene las columnas en el orden correcto que deseo?


Si desea hacerlo sin destruir los datos, puede migrar los datos al mismo tiempo que realiza la actualización del esquema:

use DB; public function up() { //Give the moving column a temporary name: Schema::table(''users'', function($table) { $table->renameColumn(''name'', ''name_old''); }); //Add a new column with the regular name: Schema::table(''users'', function(Blueprint $table) { $table->string(''name'')->after(''city''); }); //Copy the data across to the new column: DB::table(''users'')->update([ ''name'' => DB::raw(''name_old'') ]); //Remove the old column: Schema::table(''users'', function(Blueprint $table) { $table->dropColumn(''name_old''); }); }



Supongamos que el nombre de su columna es la address y desea reordenar su posición para que aparezca después de otra columna llamada city , y el nombre de su tabla sea employees .

En su terminal escriba el siguiente comando:

php artisan migrate:make reorganize_order_of_column_address --table=employees

Solo puede cambiar reorganize_order_of_column_address y los employees acuerdo con sus necesidades, pero mantenga el resto del comando tal como está.

Esto generará un archivo de migración en la carpeta app/database/migrations , lo abrirá y pondrá su código dentro de la función up() esta manera:

public function up() { Schema::table(''employees'', function(Blueprint $table) { $table->dropColumn("address"); }); Schema::table(''employees'', function(Blueprint $table) { $table->string(''address'')->after("city"); }); }

Tenga en cuenta que este método eliminará la columna y todos los datos que se almacenaron en ella, y creará una nueva columna con el mismo nombre después de la columna que detecte, y la que se acaba de crear estará vacía.

De esta manera, funcionó para mí en Laravel 4.2, y también puede funcionar en Laravel 5 pero con algunos cambios en los comandos que necesita escribir en el terminal.