Php artisan make table

Laravel: Все секреты миграции

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

В Laravel миграции — способ управления и применения изменений в схеме базы данных. Смотрите на это как на phpMyAdmin, но с кодом вместо пользовательского интерфейса. Они позволяют поддерживать синхронизацию всех ваших сред.

Как создать миграцию в Laravel

Создать миграцию может Artisan с помощью следующей команды:

php artisan make:migration CreatePostsTable
  1. Напишите название миграции в camelCase;
  2. Artisan преобразует его в snake_case (сделав имя более читабельным);
  3. В качестве префикса будет добавлена метка времени (timestamp).
INFO Created migration [2022_09_12_142156_create_posts_table].
use IlluminateSupportFacadesSchema; 
use IlluminateDatabaseSchemaBlueprint;
use IlluminateDatabaseMigrationsMigration;

return new class extends Migration
public function up()

Schema::create('posts', function (Blueprint $table)
$table->id();

// Это поля, которые вы хотите добавить в свою таблицу.
$table->string('title');
$table->text('content');

// Это поля "created_at" и "updated_at".
$table->timestamps();
>);
>

public function down()

Schema::dropIfExists('posts');
>
>;

Но есть ещё, кое-что. Знаете ли вы, что можете передавать несколько параметров?

php artisan make:migration 

Options:
--create[=CREATE] Создаваемая таблица
--table[=TABLE] Таблица для миграции
--path[=PATH] Местоположение, в котором должен быть создан файл миграции
--realpath Указывает, что любые предоставленные пути к файлам миграции являются предварительно разрешёнными абсолютными путями
--fullpath Вывести полный путь миграции

Давайте рассмотрим как их использовать и зачем.

Создание миграции с параметром —create

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

php artisan make:migration CreatePostsTable --create=billets

Создание миграции с параметром —table

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

php artisan make:migration Whatever --table=posts

Создание миграции вместе с её моделью

Что мне нравится в Artisan — возможность легко создать модель с её миграцией. Однако для этого нам нужно использовать другую команду.

php artisan make:model Post --migration

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

php artisan make:model Post -m

И если вы посмотрите на помощь, то увидите, что Artisan может сделать для вас ещё больше:

php artisan make:model -h 

Description:
Create a new Eloquent model class

Usage:
make:model [options] [--]

Arguments:
name The name of the class

Options:
-a, --all Генерировать для модели классы: миграции, наполнителя, фабрики, политики, ресурсный контроллер и запроса формы
-c, --controller Создать для модели новый контроллер
-f, --factory Создать для модели новую фабрику
--force Создать класс даже, если модель уже существует
-m, --migration Создать для модели файл миграции
--morph-pivot Указывает, должна ли сгенерированная модель быть пользовательской моделью полиморфной промежуточной таблицей
--policy Создать для модели новую политику
-s, --seed Создать для модели новый наполнитель
-p, --pivot Указывает, должна ли сгенерированная модель быть пользовательской моделью промежуточной таблицей
-r, --resource Указывает, должен ли сгенерированный контроллер быть ресурсным контроллером
--api Указывает, должен ли сгенерированный контроллер быть ресурсным контроллером API
-R, --requests Создать новые классы запроса формы и использовать их в ресурсном контроллере
--test Генерировать сопутствующий PHPUnit тест для Модели
--pest Генерировать сопутствующий Pest test для Модели

Как выполнить миграцию базы данных

Для выполнения миграции используйте следующую команду php artisan migrate .

INFO Running migrations. 

2014_10_12_000000_create_users_table .............................................................................. 4ms DONE
2014_10_12_100000_create_password_resets_table .................................................................... 1ms DONE
2018_01_01_000000_create_action_events_table ...................................................................... 7ms DONE
2019_05_10_000000_add_fields_to_action_events_table ............................................................... 1ms DONE
2019_08_19_000000_create_failed_jobs_table ........................................................................ 1ms DONE

Очистка базы данных перед миграцией

Команда php artisan migrate:fresh очистит вашу базу данных перед миграцией.

Dropping all tables ............................................................................................... 7ms DONE 

INFO Preparing database.

Creating migration table .......................................................................................... 3ms DONE

INFO Running migrations.

2014_10_12_000000_create_users_table .............................................................................. 2ms DONE
2014_10_12_100000_create_password_resets_table .................................................................... 1ms DONE
2018_01_01_000000_create_action_events_table ...................................................................... 6ms DONE
2019_05_10_000000_add_fields_to_action_events_table ............................................................... 1ms DONE
2019_08_19_000000_create_failed_jobs_table ........................................................................ 1ms DONE

Эта команда не будет работать в продакшене, чтобы предотвратить катастрофу.

Как откатить назад миграцию

Откатите назад любые изменения с помощью команды php artisan migrate:rollback . Как видно ниже, откат выполняется в обратном порядке.

INFO Rolling back migrations. 

2019_08_19_000000_create_failed_jobs_table ........................................................................ 1ms DONE
2019_05_10_000000_add_fields_to_action_events_table ............................................................... 8ms DONE
2018_01_01_000000_create_action_events_table ...................................................................... 1ms DONE
2014_10_12_100000_create_password_resets_table .................................................................... 1ms DONE
2014_10_12_000000_create_users_table .............................................................................. 1ms DONE

Поэтому убедитесь, что вы правильно используете метод down() . По сути, метод down() должен действовать противоположно методу up() .

use IlluminateSupportFacadesSchema; 
use IlluminateDatabaseSchemaBlueprint;
use IlluminateDatabaseMigrationsMigration;

return new class extends Migration
public function up()

Schema::table('posts', function (Blueprint $table)
// Это поле было boolean, но мы хотим переключиться на datetime.
$table->datetime('is_published')->nullable()->change();
>);
>

public function down()

Schema::table('posts', function (Blueprint $table)
// При откате, мы должны восстановить поле в прежнее состояние.
$table->boolean('is_published')->default(false)->change();
>);
>
>

Рекомендую ознакомиться с soft delete и рекомендациям по Eloquent в статье Laravel: Рекомендации на 2022 год. Полное руководство

Источник

How to Create Table using Laravel 8 Migration Artisan Command

Originally posted @ https://codeanddeploy.com visit and download the sample code:
https://codeanddeploy.com/blog/laravel/how-to-create-table-using-laravel-8-migration-artisan-command In this post, I will show you a guide on how to create a table using the Laravel migration artisan command. If your using Laravel it allows us to create table easily using the artisan command and help us to modify the database and stay up to date without any mess. If you are new to Laravel and want to know how to do it for example this post is for you. Just follow the guide below on how to create a table using migrations in Laravel 8.

Step 1: Create Laravel Migration

Now let’s create our first Laravel migration in this example we will create a simple products table. I assume that you already know how to run artisan command in Laravel 8.

php artisan make:migration create_products_table 

After you run the above command it will generate a migration file: database/migrations/2021_11_20_022433_create_products_table.php see below-generated code:

 use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; class CreateProductsTable extends Migration  /** * Run the migrations. * * @return void */ public function up()  Schema::create('products', function (Blueprint $table)  $table->id(); $table->timestamps(); >); > /** * Reverse the migrations. * * @return void */ public function down()  Schema::dropIfExists('products'); > > 
 use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; class CreateProductsTable extends Migration  /** * Run the migrations. * * @return void */ public function up()  Schema::create('products', function (Blueprint $table)  $table->id(); $table->string('title'); $table->string('description'); $table->decimal('price', 15, 2); $table->timestamps(); >); > /** * Reverse the migrations. * * @return void */ public function down()  Schema::dropIfExists('products'); > > 

Step 2: Run Laravel Migration

Then now let’s run the command to migrate our newly created migration. Run the following command below:

guide-to-create-table

After you run the above command let’s check to our phpmyadmin area.

Laravel Migration Command Options

php artisan make:migration create_products_table --table=products 
php artisan migrate --path=/database/migrations/2021_11_20_022433_create_products_table.php 
php artisan migrate:rollback 

Источник

How to Create Table using Laravel 9 Migration Artisan Command?

In this post, I will show you a guide on how to create a table using the Laravel migration artisan command. If your using Laravel it allows us to create table easily using the artisan command and help us to modify the database and stay up to date without any mess.

If you are new to Laravel and want to know how to do it for example this post is for you. Just follow the guide below on how to create a table using migrations in Laravel 4, 5, 6, 7, 8, and 9.

Step 1: Create Laravel Migration

Now let’s create our first Laravel migration in this example we will create a simple products table. I assume that you already know how to run the artisan command in Laravel 4, 5, 6, 7, 8, and 9.

php artisan make:migration create_products_table

After you run the above command it will generate a migration file:

database/migrations/2021_11_20_022433_create_products_table.php see below-generated code:

id(); $table->timestamps(); >); > /** * Reverse the migrations. * * @return void */ public function down() < Schema::dropIfExists('products'); >> 

Now, let’s add our basic columns for the products table. Here is the updated code:

id(); $table->string('title'); $table->string('description'); $table->decimal('price', 15, 2); $table->timestamps(); >); > /** * Reverse the migrations. * * @return void */ public function down() < Schema::dropIfExists('products'); >> 

Step 2: Run Laravel Migration

Then now let’s run the command to migrate our newly created migration. Run the following command below:

After you run the above command let’s check to our phpmyadmin area.

laravel migration

Laravel Migration Command Options

Now, let’s learn basic Laravel migration command options.

Create a Migration with Table:

php artisan make:migration create_products_table --table=products
php artisan migrate --path=/database/migrations/2021_11_20_022433_create_products_table.php
php artisan migrate:rollback

To know more about Laravel migrations visit here.

Источник

Читайте также:  Java lang nullpointerexception api
Оцените статью