кодесурса
«Laravel

Учебник Laravel (5.7) Миграция

script1adsense2code
script1adsense3code

Вступление

Миграции подобны контролю версий вашей базы данных, что позволяет вашей команде легко изменять и совместно использовать схему базы данных приложения. Миграции обычно сочетаются с компоновщиком схем Laravel, чтобы легко создавать схему базы данных вашего приложения. Если вам когда-либо приходилось указывать товарищу по команде добавить вручную столбец в их схему локальной базы данных, вы столкнулись с проблемой, которую решает миграция базы данных.

Фасад схемы Laravel обеспечивает независимую от базы данных поддержку создания и управления таблицами во всех поддерживаемых системах баз данных Laravel.

Откройте консоль и перейдите в корневой каталог вашей установки Laravel. Запустите следующую команду:

php artisan migrate:install

Эта команда заставляет Artisan создать в вашей базе данных специальную таблицу, чтобы отслеживать, какие миграции уже были выполнены.

Чтобы создать новую миграцию, выполните эту команду:

php artisan migrate:make create_users_table

Это создает файл миграции, который обрабатывает таблицу пользователя. Вы можете найти свой файл миграции в папке application / migrations. Artisan добавляет дату и время выполнения команды в качестве префикса к файлу, поэтому имя файла будет примерно таким, как «2019_04_19_071925_create_users_table.php». Обязательно используйте описательное имя, чтобы было понятно, что делает миграция одним взглядом. Откройте файл, и вы увидите класс с двумя методами: up () и down ().

<?php</
class Create_Users_Table
{
public function up() {
Schema::create("users", function($table) {
$table->increments("id");
$table->string("username", 32);
$table->string("email", 320);
$table->string("password", 64);
$table->timestamps();
});
}
public function down() {
Schema::drop("users");
}
}
 
 

Метод up () запускается при выполнении миграции и создает таблицу пользователя, которая содержит пять столбцов. Первый - столбец идентификатора с автоинкрементом, за которым следуют столбцы VARCHAR для имени пользователя, адреса электронной почты и пароля. Первый параметр string () - это имя столбца (например, «имя пользователя»), а второй - размер столбца (например, длина 32 символа). Последние столбцы создаются методом timestamps (), который создает столбцы «create_at» и «updated_at».

Метод down () проще, чем его предшественник, и просто указывает базе данных удалить таблицу пользователя.

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

php artisan migrate

В настоящее время невозможно выполнить определенную миграцию. Однако вы можете запустить все миграции в папке приложения с помощью команды:

php artisan migrate application

Вы можете сделать то же самое для определенного пакета, используя ту же команду, но с именем пакета.

Теперь предположим, что вы понимаете, что допустили ошибку проектирования и хотите откатить последний запуск миграции. Просто введите:

php artisan migrate:rollback

Пока невозможно выполнить автоматический откат до точки перед конкретной миграцией, поэтому вам придется многократно запускать команду, пока вы не достигнете этой миграции. Однако вы можете сбросить все миграции, которые вы когда-либо выполняли, просто запустив:

php artisan migrate:reset

В настоящее время база данных позволяет пользователям регистрировать одно и то же имя пользователя или адрес электронной почты любое количество раз. Мы хотим ограничить это и разрешить использование адреса или имени пользователя только один раз. Конечно, мы не хотим откатывать предыдущую миграцию, потому что в противном случае мы потеряем данные, поэтому вместо этого мы создадим новую.

php artisan migrate:make users_add_username_email

Метод up () должен добавить уникальный индекс для полей, например так:

<?php
public function up() {
Schema::table("users", function($table) {
$table->unique("username");
$table->unique("email");
});
}

В методе <code> down () </ code> вы просто хотите удалить индексы.

<?php
public function up() {
$table->drop_unique("username");
$table->drop_unique("email");
}

Предыдущая: Учебник Laravel (5.7) Базы данных
Следующая: Учебник Laravel (5.7) Пагинация

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code