Laravel 8 tạo các mô hình từ cơ sở dữ liệu hiện có

Trình tạo di chuyển cho Laravel là một gói của Bennett Treptow để tạo di chuyển từ các cấu trúc cơ sở dữ liệu hiện có

Trường hợp sử dụng chính cho gói này sẽ là một dự án có nhiều lần di chuyển làm thay đổi các bảng bằng cách sử dụng ->change[] từ học thuyết/dbal mà SQLite không hỗ trợ và cần một cách để cập nhật cấu trúc bảng cho SQLite để sử dụng trong các thử nghiệm. Một trường hợp sử dụng khác là lấy một dự án có cơ sở dữ liệu và không có di chuyển và biến cơ sở dữ liệu đó thành di chuyển cơ sở

Gói này có thể hữu ích nếu bạn đang chuyển một ứng dụng hiện có sang Laravel và muốn tạo lại quá trình di chuyển cơ sở dữ liệu cho ứng dụng để trợ giúp phát triển và thử nghiệm

Liên quan Tạo Password Generator với Laravel

Để hình dung quá trình này hoạt động như thế nào, readme đã xác định bảng users sau

CREATE TABLE `users` [

`id` int[10] unsigned NOT NULL AUTO_INCREMENT,

`username` varchar[128] COLLATE utf8mb4_unicode_ci DEFAULT NULL,

`email` varchar[255] COLLATE utf8mb4_unicode_ci NOT NULL,

`password` varchar[255] COLLATE utf8mb4_unicode_ci NOT NULL,

`first_name` varchar[45] COLLATE utf8mb4_unicode_ci DEFAULT NULL,

`last_name` varchar[45] COLLATE utf8mb4_unicode_ci DEFAULT NULL,

`timezone` varchar[45] COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'America/New_York',

`location_id` int[10] unsigned NOT NULL,

`deleted_at` timestamp NULL DEFAULT NULL,

`remember_token` varchar[255] COLLATE utf8mb4_unicode_ci DEFAULT NULL,

`created_at` timestamp NULL DEFAULT NULL,

`updated_at` timestamp NULL DEFAULT NULL,

PRIMARY KEY [`id`],

KEY `users_username_index` [`username`],

KEY `users_first_name_index` [`first_name`],

KEY `users_last_name_index` [`last_name`],

KEY `users_email_index` [`email`],

KEY `fk_users_location_id_index` [`location_id`]

CONSTRAINT `users_location_id_foreign` FOREIGN KEY [`location_id`] REFERENCES `locations` [`id`] ON UPDATE CASCADE ON DELETE CASCADE

] ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci

Sử dụng gói này, bạn có thể chạy lệnh sau để tạo lớp bản thiết kế dựa trên định nghĩa bảng

php artisan generate:migrations

Và kế hoạch chi tiết dẫn xuất từ ​​bảng users sẽ trông như sau theo ví dụ

use Illuminate\Support\Facades\Schema;

use Illuminate\Database\Schema\Blueprint;

use Illuminate\Database\Migrations\Migration;

 

class CreateUsersTable extends Migration

{

/**

* Run the migrations.

*

* @return void

*/

public function up[]

{

Schema::create['users', function [Blueprint $table] {

$table->increments['id'];

$table->string['username', 128]->nullable[]->index[];

$table->string['email', 255]->index[];

$table->string['password', 255];

$table->string['first_name', 45]->nullable[]->index[];

$table->string['last_name', 45]->index[];

$table->string['timezone', 45]->default['America/New_York'];

$table->unsignedInteger['location_id'];

$table->softDeletes[];

$table->string['remember_token', 255]->nullable[];

$table->timestamps[];

$table->foreign['location_id', 'users_location_id_foreign']->references['id']->on['locations']->onUpdate['cascade']->onDelete['cascade'];

}];

}

 

/**

* Reverse the migrations.

*

* @return void

*/

public function down[]

{

Schema::dropIfExists['users'];

}

}

Gói này cũng đi kèm với các sơ đồ di chuyển bảng và xem khác nhau và cài đặt cấu hình. Ví dụ: một cấu hình xác định các mẫu tên tệp được sử dụng để tạo lược đồ bảng

return [

'table_naming_scheme' => '[Timestamp]_create_[TableName]_table.php',

// ...

];

Tại thời điểm viết gói hỗ trợ MySQL, nhưng cũng có thể hỗ trợ Postgres, SQLite và SQL Server theo readme

Bạn có thể tìm hiểu thêm về gói này, nhận hướng dẫn cài đặt đầy đủ và xem mã nguồn trên GitHub

Gói này đã được gửi đến phần Liên kết Tin tức Laravel của chúng tôi. Liên kết là nơi cộng đồng có thể đăng các gói và hướng dẫn xung quanh hệ sinh thái Laravel. Theo dõi trên Twitter @LaravelLinks

Làm cách nào để tạo di chuyển từ cơ sở dữ liệu hiện có trong Laravel?

Để tạo di chuyển từ cơ sở dữ liệu, bạn cần thiết lập cơ sở dữ liệu của mình trong cấu hình của Laravel [ config/database. php ] . Laravel Migrations Generator trước tiên sẽ tạo tất cả các bảng, cột và chỉ mục, sau đó thiết lập tất cả các ràng buộc khóa ngoại.

Làm cách nào để tạo mô hình cho một lần di chuyển hiện có trong Laravel?

Điều hướng đến thư mục dự án của bạn và chạy các lệnh sau để tạo mới. .
Mô hình. nghệ nhân php làm. lập mô hình YourModelName
Bộ điều khiển. nghệ nhân php làm. bộ điều khiển YourControllerName
di cư. nghệ nhân php làm. di chuyển tạo_users_table

Làm cách nào để tạo di chuyển trong Laravel?

Để tạo một lần di chuyển mới, bạn có thể chạy make. migration Lệnh Artisan và lệnh đó sẽ khởi động một lớp mới trên ứng dụng Laravel của bạn, trong thư mục cơ sở dữ liệu/di chuyển. Lớp này sẽ chứa mã soạn sẵn mặc định.

Làm thế nào chúng ta có thể tạo mô hình trong Laravel?

Bạn có thể sử dụng đồ thủ công. trình trợ giúp dòng lệnh mô hình để tạo các mô hình mới cho ứng dụng của bạn . Để tạo một mô hình Eloquent mới cho bảng liên kết của bạn, hãy chạy. docker-compose exec app php artisan make. Liên kết mô hình.

Chủ Đề