Tool to Generate Laravel Migrations from Existing Database
Bài đăng này đã không được cập nhật trong 5 năm
1.Introduction
Migration giống như một Control Database có tác dụng quản lý cũng như lưu trữ lại cấu trúc của database giúp cho việc sửa đổi database trở lên dễ dàng hơn.
Để Tạo 1 Migration cách thông thường thì chúng ta chạy lệnh: php artisan make:migration TenMigrate --create=TableName
Nhưng nếu một ngày bạn có 1 Database tận 50 table , Task sếp giao là bạn phải tạo Migration cho 50 table đó, khách hàng đang cần gấp để deploy server, không lẽ bạn phải đi tạo từng file , check từng column, từng kiểu dữ liệu, index và ràng buộc khóa ngoại của nó, rất tốn thời gian. Hôm nay mình xin chia sẻ 1 package giúp bạn xử lý việc này.
Laravel Migrations Generator là 1 trong những package như vậy, nó tự động tạo ra các file migrations từ cơ sỡ dữ liệu đã có, bao gồm các chỉ mục (index) và các khóa ngoại (foreign keys) 1 cách rất nhanh chóng và tiện lợi!
Ngoài ra thì cũng có thêm 2 tool khác cũng rất hay, mình xin giới thiệu để anh em châm cứu khi cần:
- Laravel Migration Exporter for Sequel Pro – Một gói cho Sequel Pro cho phép bạn tạo các tệp Migrations Laravel từ cơ sỡ dữ liệu , nó được viết bằng ngôn ngữ PHP
- MySQL Workbench Export Laravel 5 Migrations Plugin – Một plugin của MySQL Workbench, được viết bằng ngôn ngữ Python
2.Prerequisites
-
Laravel 5 installation
composer require --dev "xethron/migrations-generator"
Nếu bạn dùng phiên bản thấp hơn Laravel 5.5 thì cần phải thêm providers ở config/app.php:
Way\Generators\GeneratorsServiceProvider::class, Xethron\MigrationsGenerator\MigrationsGeneratorServiceProvider::class
3.Getting Started
Để tạo migrations 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.
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=
DB_USERNAME=
DB_PASSWORD=
- Run
php artisan migrate:generate
để generate tất cả bảng trong cơ sỡ dữ liệu. - Run
php artisan migrate:generate table1,table2,table3,table4,table5
để chỉ định các bảng muốn tạo. - Bỏ qua các bảng với
--ignore="table3,table4,table5"
4.Testing
php artisan migrate:generate
Ok, migrations được tạo thành công. Bây giờ hãy run migrate Artisan command:
php artisan migrate
All rights reserved