Публикации - Laravel

База данных и модели - Миграции

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

Для создания новой миграции нам понадобится интерфейс командной строки Laravel — «Artisan».

Итак, откроем консоль командной строки из папки, где расположен файл artisan. В консоли введем следующую команду:

php artisan make:migration create_categories

Консоль должна ответить нам следующей фразой:

“Great! New migration created!”

Если получили такой ответ, то перейдем в папку application/migrations. Там должен находится файл 2014_04_20_210359_create_users.php (к имени миграции artisan добавляет текущую дату). Откроем данный файл. Увидим следующее:

Class Create_Categories {

  /**

  * Внести изменения в базу данных.

  * @return void

  */

  public function up()

  {
    //
  }
 
  public function down()

  {
    //
  }

}

Класс миграции содержит два метода up() для внесения изменений в таблицу базы данных и down() для отмены действий метода up(). Например, если мы создаем таблицу в up(), то в down() ее нужно удалить.

Допишем действия up() и down()

public function up(){

Schema::create('categories', function ($table) {

    // auto incremental id (PK)
    $table->increments('id');

    // varchar 32
    $table->string('name', 32);

    // enum
    $table->enum('showhide', array('show','hide'));

    // created_at | updated_at DATETIME
    $table->timestamps();

 });                   

}

public function down(){

 Schema::drop('categories');

}

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

  • increments() — добавить автоинкрементируемое поле — его будет иметь бо?льшая часть ваших таблиц
  • string() — создать поле VARCHAR — правда, «строка» куда более описательное имя, чем в стандарте SQL?
  • integer() — добавить целочисленное поле
  • float() — поле с дробным числом (число с плавающей точкой)
  • boolean() — логическое («булево») поле — истина (true) или ложь (false)
  • date() — поле даты
  • timestamp() — поле «отпечатка времени», так называемый «Unix timestamp»
  • text() — текстовое поле без ограничения по длине
  • blob() — большой двоичный объект (BLOB)

Перед тем как на основе существующих миграций создавать таблицы, давайте создадим таблицу migrations, в которой laravel будет хранить данные о самих миграциях:

// ВНИМАНИЕ!Данну команду необходимо выполнять, если у нас еще не создана таблица migrations
php artisan migrate:install

В результате мы должны увидеть

“Migration table created successfully.”

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

php artisan migrate

Чтобы удалить таблицу, можно выполнить команду rollback

php artisan migrate:rollback

Количество комментариев: 0

Для того, чтобы оставить коментарий необходимо зарегистрироваться


Изображения Видео

1. Подключение CKEditor https://artisansweb.net/install-use-ckeditor-laravel/#comments
2. Регистрация и авторизация https://know-online.com/post/laravel-reg
3. Что нового в Laravel 8 https://sergeymukhin.com/blog/chto-novogo-v-laravel-80
4. Авторизация Sanctum <iframe width="560" height="315" src="https://www.youtube.com/embed/MT-GJQIY3EU" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>