Semeador de banco de dados em Laravel

Semeador de banco de dados em Laravel
Os dados do aplicativo da web são armazenados permanentemente no banco de dados e é uma parte essencial de um projeto da web. Às vezes, requer teste o aplicativo com dados fictícios. Esta tarefa pode ser realizada no projeto Laravel usando um semeador de banco de dados. O Laravel contém classes de sementes para adicionar muitos dados falsos rapidamente no banco de dados para fins de teste, e essas classes são armazenadas no local, banco de dados/semeadores. O Banco de dadoseseeder A classe é usada por padrão no Laravel para usar as classes de sementes. A maneira de semear dados no banco de dados usando as classes de sementes do Laravel foi mostrada neste tutorial.

Pré-requisitos:

Você precisa concluir as seguintes tarefas antes de iniciar a tarefa de semeadura de banco de dados.

  1. Crie um novo projeto de Laravel nomeado Projeto Seeder. Aqui, o compositor tem sido usado para criar o projeto Laravel. Se o compositor não está instalado antes disso, você deve instalá -lo antes de executar o seguinte comando.
    $ compositor Criar-Projeto Laravel/Laravel SeedProject
  1. Vá para a pasta do projeto.
    $ CD SeederProject
  2. Todos os exemplos deste tutorial foram testados no Laravel versão 9+. Verifique a versão instalada do Laravel.
    $ php artesan -versão

Banco de dados de configuração:

Você precisa criar um banco de dados no MySQL para implementar a tarefa de semeadura de banco de dados. Conclua as seguintes tarefas para criar um banco de dados e configurar o banco de dados para o projeto Laravel.

  1. Execute o seguinte comando SQL para criar um banco de dados nomeado db_seeder do prompt do mysql.
    MySQL> Criar banco de dados DB_SEEDER;
  2. Abra o .Env arquivo do projeto Laravel e inicialize os valores para as seguintes informações com base no banco de dados.
    Db_connection = mysql
    Db_host = localhost
    Db_port = 3306
    Db_database = db_seeder
    Db_username = 'nome de usuário'
    Db_password = 'senha'

Crie modelo e arquivo de migração para uma tabela:

Vá para a pasta do projeto Laravel e execute o seguinte comando para criar o modelo e o arquivo de migração para o Clientes mesa.

$ PHP Artisan Make: Model Clients -m

A saída a seguir aparecerá se o modelo e o arquivo de migração tiverem sido criados com sucesso. O arquivo de modelo denominado clientes.PHP e o arquivo de migração chamado 2022_03_09_141143_create_customers_table.PHP foi criado aqui. O arquivo de migração exigirá modificar para adicionar os campos da tabela de clientes com base nos requisitos do projeto e foi feito na próxima parte do tutorial.

Modifique o arquivo de migração:

Abra o arquivo de migração do local, banco de dados/migração, e modificar o arquivo com o seguinte conteúdo, de acordo com o conteúdo do arquivo de migração, 7 campos. Estes são id, nome. endereço, email, contato_no. Campos criados e atualizados e atualizados.

Use Illuminate \ Database \ Migrations \ Migration;
Use Illuminate \ Database \ Schema \ Blueprint;
use iluminado \ support \ fachades \ schema;
Retornar nova classe estende a migração

/**
* Execute as migrações.
*
* @return void
*/
função pública up ()

Schema :: Create ('clientes', função (Blueprint $ tabela)
$ tabela-> id ();
$ tabela-> string ("nome", 30);
$ tabela-> texto ("endereço");
$ tabela-> string ("email", 50);
$ tabela-> string ("contact_no", 30);
$ tabela-> timestamps ();
);

/**
* Reverter as migrações.
*
* @return void
*/
função pública para baixo ()

Schema :: Dropifexists ('clientes');

;

Crie a tabela com base no arquivo de migração:

Execute o seguinte comando migrar para criar o Clientes tabela no banco de dados. Os dados falsos serão inseridos nesta tabela.

$ php artesan migrar

Crie fábrica para gerar os dados falsos:

Execute o seguinte comando para criar a fábrica que será usada para inserir dados falsos na tabela de clientes.

$ PHP Artisan Make: Factory CustomersFactory -Model = Clientes

A saída a seguir aparecerá se a fábrica for criada com sucesso e o CustomersFactory.php O arquivo é criado dentro do banco de dados/fábricas pasta do projeto.

Abra o CustomersFactory.php Arquive e modifique o conteúdo do arquivo com o seguinte conteúdo. Três propriedades Faker foram usadas para adicionar um nome falso, email e endereço no script. Estes são faker-> nome, Faker-> Email, e Faker-> endereço. Um método Faker foi usado para gerar o número de telefone falso. O nome do método é numerify (). Este método inserirá um número de telefone falso começando com '880', quaisquer dígitos numéricos de 4 números seguidos por '-' e quaisquer dígitos numéricos de 6 números seguidos por outro '-.'

Namespace Database \ Factories;
Use Illuminate \ Database \ Eloquent \ Factories \ Factory;
Use App \ Models \ Customers;
/**
* @Extends \ Illuminate \ Database \ Eloquent \ Factories \ Factory
*/
CLASSE CLASTERSFactory estende a fábrica

/**
* Defina o estado padrão do modelo.
*
* Array @return
*/
Model protegido = CLASTERS :: Class;
definição de função pública ()

retornar [
'nome' => $ this-> faker-> nome,
'endereço' => $ this-> faker-> endereço,
'Email' => $ this-> faker-> email,
'Contact_no' => $ this-> faker-> numerify ('880-####-#####')
];

Criar classe de semente:

Execute o seguinte comando para criar a classe de semente usada para executar a fábrica criada antes.

$ PHP Artisan Make: Seeder Clientseeder

A saída a seguir aparecerá se a classe de semeador for criada com sucesso e o CustomerEDer.php A classe é criada dentro do banco de dados/semeadores pasta do projeto.

Abra o Customerseeder.php Arquive e modifique o conteúdo do arquivo com o seguinte conteúdo. De acordo com o script, 20 registros falsos serão inseridos após a execução do comando de semente.

Namespace Database \ Seeders;
Use iluminado \ Database \ Console \ Seeds \ WithoutModelevents;
Use iluminado \ Database \ Seeder;
Use App \ Models \ Customers;
CLASTERSEEDER CLASTERSEEDER estende a semente

/**
* Execute as sementes do banco de dados.
*
* @return void
*/
função pública run ()

Clientes :: factory ()-> count (20)-> create ();

Dados de sementes na tabela:

Execute o seguinte comando para executar a classe de sementes que inserirá 20 registros falsos na tabela de clientes.

$ php artesan db: semente -Class = Customerseeder

A saída a seguir aparecerá se a semeadura do banco de dados for feita com sucesso. 20 registros falsos serão inseridos na tabela de clientes depois de executar o comando.

Em seguida, você pode abrir a tabela de clientes para verificar se a semeadura de banco de dados foi feita corretamente e 20 registros falsos foram adicionados. Abra a tabela de clientes do URL, http: // localhost/phpmyadmin e verifique o conteúdo da tabela. Você obterá a seguinte saída semelhante após abrir a tabela.

Conclusão:

A tarefa de semeadura de banco de dados no projeto Laravel foi mostrada neste tutorial criando uma tabela simples. Adicionar uma grande quantidade de dados manualmente para fins de teste é demorado. O recurso de semeadura de banco de dados do Laravel facilita essa tarefa. Depois de ler este tutorial, espero que este tutorial ajude os usuários de Laravel a entender o objetivo de usar a semeadura de banco de dados corretamente.