Laravel, одна из самых популярных платформ PHP, предоставляет мощную функцию миграции базы данных, которая упрощает управление изменениями структуры базы данных. С помощью миграции Laravel вы можете легко создавать, изменять и откатывать таблицы и столбцы базы данных. В этой статье мы рассмотрим различные типы миграции в Laravel и предоставим примеры кода для каждого метода.
- Создание таблицы.
Чтобы создать новую таблицу, вы можете использовать методcreate, предоставляемый построителем схемы Laravel. Вот пример:
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateUsersTable extends Migration
{
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('email')->unique();
$table->timestamps();
});
}
public function down()
{
Schema::dropIfExists('users');
}
}
- Добавление столбцов.
Чтобы добавить столбцы в существующую таблицу, вы можете использовать методtableвместе с методомaddColumn. Вот пример:
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AddPhoneNumberToUsersTable extends Migration
{
public function up()
{
Schema::table('users', function (Blueprint $table) {
$table->string('phone_number')->after('email');
});
}
public function down()
{
Schema::table('users', function (Blueprint $table) {
$table->dropColumn('phone_number');
});
}
}
- Изменение столбцов.
Чтобы изменить существующий столбец, вы можете использовать методchange. Вот пример:
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class ModifyEmailColumnInUsersTable extends Migration
{
public function up()
{
Schema::table('users', function (Blueprint $table) {
$table->string('email')->nullable()->change();
});
}
public function down()
{
Schema::table('users', function (Blueprint $table) {
$table->string('email')->change();
});
}
}
- Удаление столбцов.
Чтобы удалить столбец из существующей таблицы, вы можете использовать методtableвместе с методомdropColumn. Вот пример:
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class RemovePhoneNumberFromUsersTable extends Migration
{
public function up()
{
Schema::table('users', function (Blueprint $table) {
$table->dropColumn('phone_number');
});
}
public function down()
{
Schema::table('users', function (Blueprint $table) {
$table->string('phone_number');
});
}
}
Функция миграции Laravel предоставляет удобный способ управления изменениями схемы базы данных в вашем приложении. В этой статье мы рассмотрели несколько часто используемых типов миграции, включая создание таблицы, добавление столбцов, изменение столбцов и удаление столбцов. Используя эти методы, вы можете легко адаптировать схему базы данных в соответствии с меняющимися требованиями.