Seeding trong Laravel là gì?

Trước đây mình có đăng bài viết Hướng dẫn Seed cơ sở dữ liệu trong PHP bằng thư viện Faker. Trong khi nghiên cứu chủ đề này, tôi thấy rằng Laravel cũng sử dụng cùng một thư viện để tạo cơ sở dữ liệu. Vì tôi đã viết một bài về chủ đề này cho PHP, nên tôi quyết định viết một bài về cơ sở dữ liệu seeding trong Laravel. Không giống như PHP thuần túy, Laravel sử dụng luồng riêng của nó để khởi tạo cơ sở dữ liệu

Cơ sở dữ liệu Seeding là gì?

Tạo cơ sở dữ liệu là quá trình lấp đầy các bảng cơ sở dữ liệu của bạn bằng dữ liệu thử nghiệm theo chương trình. Với phương pháp này, người ta có thể chèn hàng nghìn mục nhập giả mạo vào cơ sở dữ liệu trong vòng vài phút. Đó là một cách hiệu quả hơn là làm thủ công. Bạn có thể muốn dữ liệu giả để kiểm tra ứng dụng của mình và tạo cơ sở dữ liệu theo chương trình giúp bạn tiết kiệm rất nhiều thời gian

Thư viện giả mạo

Faker là một thư viện nguồn mở tạo dữ liệu giả mạo cho cơ sở dữ liệu của ứng dụng của bạn. Sử dụng Faker, người ta có thể chèn hàng nghìn mục nhập vào cơ sở dữ liệu trong vài phút. Thư viện này tiết kiệm một công việc nhập dữ liệu nhàm chán cho các nhà phát triển. Bạn có thể nhận được hầu hết mọi loại dữ liệu bạn muốn. Thư viện tạo một email giả, tên, số điện thoại di động, từ, câu, đoạn văn, số ngẫu nhiên, v.v. Bạn có thể đọc thêm về thư viện trong tài liệu

Về cơ bản, Laravel sử dụng thư viện Faker để tạo cơ sở dữ liệu. Laravel cài đặt thư viện này ở lõi của nó. Bạn không cần phải cài đặt riêng. Tất cả những gì bạn cần làm là làm theo các bước để gieo hạt và bạn đã hoàn tất

Bắt đầu

Để bắt đầu, tôi sẽ tạo một bảng

public function up[]
{
    Schema::create['customers', function [Blueprint $table] {
        $table->id[];
        $table->string['name'];
        $table->string['email'];
        $table->string['identification_number'];
        $table->text['bio'];
        $table->timestamps[];
    }];
}
1 với tên, email, số nhận dạng và tiểu sử của cột. Chúng ta sẽ xem quá trình gieo hạt vào bảng đơn. Theo cách tương tự, người ta có thể tạo bao nhiêu bảng tùy thích

Tạo di chuyển cho bảng

public function up[]
{
    Schema::create['customers', function [Blueprint $table] {
        $table->id[];
        $table->string['name'];
        $table->string['email'];
        $table->string['identification_number'];
        $table->text['bio'];
        $table->timestamps[];
    }];
}
1 bằng lệnh

php artisan make:migration create_customers_table

Mở tệp di chuyển và thêm các cột vào phương thức

public function up[]
{
    Schema::create['customers', function [Blueprint $table] {
        $table->id[];
        $table->string['name'];
        $table->string['email'];
        $table->string['identification_number'];
        $table->text['bio'];
        $table->timestamps[];
    }];
}
3 như hình bên dưới

public function up[]
{
    Schema::create['customers', function [Blueprint $table] {
        $table->id[];
        $table->string['name'];
        $table->string['email'];
        $table->string['identification_number'];
        $table->text['bio'];
        $table->timestamps[];
    }];
}

Chạy lệnh di chuyển sẽ tạo bảng

public function up[]
{
    Schema::create['customers', function [Blueprint $table] {
        $table->id[];
        $table->string['name'];
        $table->string['email'];
        $table->string['identification_number'];
        $table->text['bio'];
        $table->timestamps[];
    }];
}
1 trong cơ sở dữ liệu của bạn

php artisan migrate

Tiếp theo, tạo một mô hình

public function up[]
{
    Schema::create['customers', function [Blueprint $table] {
        $table->id[];
        $table->string['name'];
        $table->string['email'];
        $table->string['identification_number'];
        $table->text['bio'];
        $table->timestamps[];
    }];
}
5 ánh xạ tới bảng
public function up[]
{
    Schema::create['customers', function [Blueprint $table] {
        $table->id[];
        $table->string['name'];
        $table->string['email'];
        $table->string['identification_number'];
        $table->text['bio'];
        $table->timestamps[];
    }];
}
1

php artisan make:model Customer

Tạo cơ sở dữ liệu trong Laravel

Tạo cơ sở dữ liệu trong Laravel yêu cầu bạn thực hiện các bước sau

  • viết seeder
  • Tạo một nhà máy mô hình
  • Chạy máy gieo hạt

Viết Seeder

Nếu bạn nhìn vào hệ thống tập tin của Laravel, bạn sẽ tìm thấy thư mục

public function up[]
{
    Schema::create['customers', function [Blueprint $table] {
        $table->id[];
        $table->string['name'];
        $table->string['email'];
        $table->string['identification_number'];
        $table->text['bio'];
        $table->timestamps[];
    }];
}
7. Tất cả các lớp hạt giống được đặt bên trong thư mục này. Lớp gốc có phương thức
public function up[]
{
    Schema::create['customers', function [Blueprint $table] {
        $table->id[];
        $table->string['name'];
        $table->string['email'];
        $table->string['identification_number'];
        $table->text['bio'];
        $table->timestamps[];
    }];
}
8 nơi bạn có thể viết logic để chèn dữ liệu vào bảng

Tạo một lớp hạt giống

public function up[]
{
    Schema::create['customers', function [Blueprint $table] {
        $table->id[];
        $table->string['name'];
        $table->string['email'];
        $table->string['identification_number'];
        $table->text['bio'];
        $table->timestamps[];
    }];
}
9 bằng lệnh

public function up[]
{
    Schema::create['customers', function [Blueprint $table] {
        $table->id[];
        $table->string['name'];
        $table->string['email'];
        $table->string['identification_number'];
        $table->text['bio'];
        $table->timestamps[];
    }];
}
3

Sau khi thực hiện lệnh này, bạn sẽ thấy tệp

php artisan migrate
0 được đặt trong thư mục
public function up[]
{
    Schema::create['customers', function [Blueprint $table] {
        $table->id[];
        $table->string['name'];
        $table->string['email'];
        $table->string['identification_number'];
        $table->text['bio'];
        $table->timestamps[];
    }];
}
7. Mở tệp này và đến chức năng
public function up[]
{
    Schema::create['customers', function [Blueprint $table] {
        $table->id[];
        $table->string['name'];
        $table->string['email'];
        $table->string['identification_number'];
        $table->text['bio'];
        $table->timestamps[];
    }];
}
8, thêm đoạn mã dưới đây

public function up[]
{
    Schema::create['customers', function [Blueprint $table] {
        $table->id[];
        $table->string['name'];
        $table->string['email'];
        $table->string['identification_number'];
        $table->text['bio'];
        $table->timestamps[];
    }];
}
7

Ở đây tôi đang gọi nhà máy Khách hàng mà tôi sẽ tạo trong bước tiếp theo. Lưu ý rằng tôi đã chuyển giá trị là 50 cho phương thức

php artisan migrate
3. Nó có nghĩa là 50 hàng nên được chèn vào bảng
public function up[]
{
    Schema::create['customers', function [Blueprint $table] {
        $table->id[];
        $table->string['name'];
        $table->string['email'];
        $table->string['identification_number'];
        $table->text['bio'];
        $table->timestamps[];
    }];
}
1

Tạo mô hình nhà máy

Đoạn code mình viết trong

public function up[]
{
    Schema::create['customers', function [Blueprint $table] {
        $table->id[];
        $table->string['name'];
        $table->string['email'];
        $table->string['identification_number'];
        $table->text['bio'];
        $table->timestamps[];
    }];
}
9 sẽ tìm một nhà máy của Khách hàng để lấy dữ liệu test. Điều đó có nghĩa là chúng ta phải tạo ra một nhà máy kiểu mẫu có tên là
php artisan migrate
6. Chạy lệnh dưới đây để tạo mô hình nhà máy

php artisan make:migration create_customers_table
2

Lệnh này sẽ tạo một

php artisan migrate
7 bên trong thư mục
php artisan migrate
8. Mở tệp này, phương pháp
php artisan migrate
9 sẽ tạo dữ liệu thử nghiệm như sau

php artisan make:migration create_customers_table
6

Mảng trên trả về một tên ngẫu nhiên, email, số có 9 chữ số và văn bản cho tiểu sử

Máy gieo hạt chạy

Chúng tôi đã viết CustomerSeeder và CustomerFactory. Bây giờ hãy chạy CustomerSeeder bằng lệnh bên dưới

php artisan make:migration create_customers_table
7

Sau đó, hãy kiểm tra bảng

public function up[]
{
    Schema::create['customers', function [Blueprint $table] {
        $table->id[];
        $table->string['name'];
        $table->string['email'];
        $table->string['identification_number'];
        $table->text['bio'];
        $table->timestamps[];
    }];
}
1 của bạn, nó sẽ có 50 mục nhập giả được chèn vào

Lệnh trên chạy một seeder duy nhất mà chúng tôi đã thông qua một cách rõ ràng. Giả sử bạn muốn tạo nhiều seeder và chạy tất cả chúng bằng một lệnh duy nhất. Trong những trường hợp như vậy, bạn nên gọi những người gieo hạt của mình từ

php artisan make:model Customer
1 được tìm thấy trong cùng thư mục
public function up[]
{
    Schema::create['customers', function [Blueprint $table] {
        $table->id[];
        $table->string['name'];
        $table->string['email'];
        $table->string['identification_number'];
        $table->text['bio'];
        $table->timestamps[];
    }];
}
7

public function up[]
{
    Schema::create['customers', function [Blueprint $table] {
        $table->id[];
        $table->string['name'];
        $table->string['email'];
        $table->string['identification_number'];
        $table->text['bio'];
        $table->timestamps[];
    }];
}
1

Người dùng có thể tạo bao nhiêu seeder theo yêu cầu của họ và gọi chúng từ phương thức

public function up[]
{
    Schema::create['customers', function [Blueprint $table] {
        $table->id[];
        $table->string['name'];
        $table->string['email'];
        $table->string['identification_number'];
        $table->text['bio'];
        $table->timestamps[];
    }];
}
8 này

Cuối cùng, chạy seeder bằng lệnh bên dưới

public function up[]
{
    Schema::create['customers', function [Blueprint $table] {
        $table->id[];
        $table->string['name'];
        $table->string['email'];
        $table->string['identification_number'];
        $table->text['bio'];
        $table->timestamps[];
    }];
}
0

Nó sẽ gọi tất cả các seeder từ phương thức run và thực thi nó

Tôi hy vọng bạn hiểu cơ sở dữ liệu seeding trong Laravel. Điều này sẽ giúp bạn lấp đầy cơ sở dữ liệu với hàng tấn mục để kiểm tra ứng dụng của bạn

Seeding có nghĩa là gì trong laravel?

Laravel bao gồm khả năng khởi tạo cơ sở dữ liệu của bạn bằng dữ liệu bằng cách sử dụng các lớp khởi tạo . Tất cả các lớp hạt giống được lưu trữ trong thư mục cơ sở dữ liệu/người gieo hạt. Theo mặc định, một lớp DatabaseSeeder được xác định cho bạn. Từ lớp này, bạn có thể sử dụng phương thức gọi để chạy các lớp hạt giống khác, cho phép bạn kiểm soát thứ tự hạt giống.

Migration và seeding trong laravel là gì?

Giới thiệu Migration và Seeding . Di chuyển thường được ghép nối với trình tạo lược đồ của Laravel để dễ dàng xây dựng lược đồ cơ sở dữ liệu của ứng dụng của bạn. Migrations are like version control for your database, allowing your team to easily modify and share the application's database schema. Migrations are typically paired with Laravel's schema builder to easily build your application's database schema.

Seeding có nghĩa là gì trong cơ sở dữ liệu?

Tạo dữ liệu là quá trình điền vào cơ sở dữ liệu một tập hợp dữ liệu ban đầu . Có một số cách điều này có thể được thực hiện trong EF Core. Dữ liệu hạt giống mô hình. Tùy chỉnh di chuyển thủ công. Logic khởi tạo tùy chỉnh.

Sự khác biệt giữa nhà máy và seeder trong laravel là gì?

Database seeder được sử dụng để điền dữ liệu vào bảng. Các nhà máy sản xuất mô hình là một nơi tập trung thuận tiện để xác định cách các mô hình của bạn sẽ được điền dữ liệu giả .

Chủ Đề