Я действительно не могу понять, как добавить новый столбец в мою существующую таблицу в моей базе данных, используя фреймворк 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