No puedo averiguar cómo añadir una nueva columna a mi tabla de base de datos existente utilizando el framework Laravel.
Traté de editar el archivo de migración utilizando...
lenguaje: php -->
<?php
public function up()
{
Schema::create('users', function ($table) {
$table->integer("paid");
});
}
En el terminal, ejecuto php artisan migrate:install
y migrate
.
¿Cómo puedo añadir nuevas columnas?
Para crear una migración, puede utilizar el comando migrate:make en la CLI de Artisan. Utilice un nombre específico para evitar que coincida con los modelos existentes
para Laravel 3:
php artisan migrate:make add_paid_to_users
para Laravel 5+:
php artisan make:migration add_paid_to_users_table --table=users
Entonces necesitas usar el método Schema::table()
(ya que estás accediendo a una tabla existente, no creando una nueva). Y puedes añadir una columna así:
`Los datos de la tabla son los mismos que los de la tabla anterior;
public function up()
{
Schema::table('users', function($table) {
$table->integer('paid');
});
}
y no te olvides de añadir la opción de retroceso:
public function down()
{
Schema::table('users', function($table) {
$table->dropColumn('paid');
});
}
Luego puedes ejecutar tus migraciones:
lenguaje: bash -->
php artisan migrate
Todo esto está bien cubierto en la documentación tanto para Laravel 3:
Y para Laravel 4 / Laravel 5:
Editar:
use $table->integer('paid')->after('whichever_column');
para añadir este campo después de una columna específica.
Si estás usando Laravel 5, el comando sería;
php artisan make:migration add_paid_to_users
Todos los comandos para hacer cosas (controladores, modelos, migraciones, etc) se han movido bajo el comando make:
.
Sin embargo, php artisan migrate
sigue siendo el mismo.
Puedes añadir nuevas columnas dentro del método inicial Schema::create
de la siguiente manera:
Schema::create('users', function($table) {
$table->integer("paied");
$table->string("title");
$table->text("description");
$table->timestamps();
});
Si ya ha creado una tabla, puede añadir columnas adicionales a esa tabla creando una nueva migración y utilizando el método Schema::table
:
Schema::table('users', function($table) {
$table->string("title");
$table->text("description");
$table->timestamps();
});
La documentación es bastante completa al respecto, y no ha cambiado demasiado de la versión 3 a la versión 4.