Добавить новый столбец в существующую таблицу при миграции

Я действительно не могу понять, как добавить новый столбец в мою существующую таблицу в моей базе данных, используя фреймворк PHP laravel.

Я попытался изменить файл миграции на

public function up() { Schema::create('users', function($table){ $table->integer("paid"); }); } 

и в терминале php artisan migrate:install и migrate

Как добавить новые столбцы?

Чтобы создать миграцию, вы можете использовать команду migrate: make в CLIS Artisan. Используйте определенное имя, чтобы избежать столкновения с существующими моделями

для Laravel 3:

 php artisan migrate:make add_paid_to_users 

для Laravel 5+:

 php artisan make:migration add_paid_to_users 

Затем вам необходимо использовать метод Schema::table() (поскольку вы обращаетесь к существующей таблице, а не создаете новую). И вы можете добавить столбец следующим образом:

 public function up() { Schema::table('users', function($table) { $table->integer('paid'); }); } 

и не забудьте добавить вариант отката:

 public function down() { Schema::table('users', function($table) { $table->dropColumn('paid'); }); } 

Затем вы можете запустить свои миграции:

 php artisan migrate 

Все это хорошо описано в документации для Laravel 3:

  • Конструктор схем
  • Миграции

И для Laravel 4 / Laravel 5:

  • Конструктор схем
  • Миграции

Редактировать:

используйте $table->integer('paid')->after(whichever_column); для добавления этого поля после определенного столбца.

Если вы используете Laravel 5, команда будет;

 php artisan make:migration add_paid_to_users 

Все команды для создания вещей (контроллеры, модели, миграции и т. Д.) Были перемещены в команде make:

php artisan migrate все равно остается прежней.

Я добавлю ответ mike3875 для будущих читателей, используя Laravel 5.1 и далее.

Чтобы ускорить работу, вы можете использовать флаг «- table» следующим образом:

 php artisan make:migration add_paid_to_users --table="users" 

Это автоматически добавит контент up и down :

 /** * Run the migrations. * * @return void */ public function up() { Schema::table('users', function (Blueprint $table) { // }); } 

Аналогично, вы можете использовать параметр --create["table_name"] при создании новых миграций, которые добавят больше шаблонов в ваши миграции. Небольшая точка, но полезно при загрузке!

Вы можете добавить новые столбцы в первоначальный метод Schema::create следующим образом:

 Schema::create('users', function($table) { $table->integer("paied"); $table->string("title"); $table->text("description"); $table->timestamps(); }); 

Если вы уже создали таблицу, вы можете добавить дополнительные столбцы в эту таблицу, создав новую миграцию и используя метод Schema::table :

 Schema::table('users', function($table) { $table->string("title"); $table->text("description"); $table->timestamps(); }); 

Документация достаточно подробно об этом и не слишком сильно изменилась с версии 3 до версии 4 .

вы можете просто изменить существующий файл миграции, например, добавить столбец в своей таблице, а затем ввести свой терминал:

 $ php artisan migrate:refresh