1. Migration.
- Migration có thể được hiểu như một phiên bản database của bạn tại một thời điểm nào đó vậy.
- Nó giúp cho việc chia sẻ lược đồ database của bạn khi làm việc nhóm trở nên dễ dàng hơn.
- Chỉ cần chạy migration là bạn có thể sinh ra một lược đồ giống như bạn đã định nghĩa.
- Và tất nhiên là bạn cũng có thể sửa được các cột trong database rồi.
2 Tạo migration.
- Để tạo ra một migration trong laravel thì bạn chỉ cần chạy lệnh sau trong terminal:
php artisan make:migration ten_migration --create=table_name
//hoặc
php artisan make:migration ten_migration --table=table_name
- Kết quả sau khi chạy lệnh là bạn nhận được một file migration ở trong thư mục
database/migrations
- Về phần
--create
hay--table
là để chỉ ra tên của bảng và việc migration có tạo bảng mới hay không. - Mỗi file migration được đặt tên bao gồm
timestamp + tên
để xác định thứ tự migartion với nhau.
3 File migration.
<?phpuseIlluminateDatabaseMigrationsMigration;useIlluminateDatabaseSchemaBlueprint;useIlluminateSupportFacadesSchema;returnnewclassextendsMigration{/**
* Run the migrations.
*
* @return void
*/publicfunctionup(){Schema::create('users',function(Blueprint$table){$table->id();$table->string('email')->unique();$table->timestamp('email_verified_at')->nullable();$table->string('password');$table->rememberToken();$table->timestamps();});}/**
* Reverse the migrations.
*
* @return void
*/publicfunctiondown(){Schema::dropIfExists('users');}};
- Trong file này có 2 funtion là up và down.
- Về cơ bản thì function up sẽ chạy khi bạn thực thi câu lệnh
php artisan migrate
còn function down sẽ được chạy khi bạn thực thi câu lệnhphp artisan migrate:rollback
. - Tất nhiên là khi function up được thực thi thì nó sẽ sinh ra một bảng uers trong database của bạn còn function down sẽ xóa bảng đó đi.
4 Chạy migration
- Như ở trên mình có nói thì để thực thi các file migration thi bạn chỉ cần chạy lệnh:
php artisan migrate
- Và để quay trở lại trạng thái trước đó thì chạy lệnh:
php artisan migrate:rollback
- Ngoài ra bạn cũng có thể xác định số bước khôi phục bằng lựa chọn
--step
.
php artisan migrate:rollback --step=5
- Laravel cũng cung cấp cho bạn một cách để bạn không cần phải chạy lại migrate mỗi khi rollback đó là
php artisan migrate:reset
5. Schema
- Bạn có thể hiểu Schema dùng để
tạo, sửa, xóa,..
những thứ liên quan đến table trong database.
//tạo bảngSchema::create('users',function(Blueprint$table){}//đổi tên bảngSchema::rename('post','posts')//xóa bảngSchema::drop('users');Schema::dropIfExists('users');
- Bạn cũng có thể kiểm tra xem bảng hoặc cột đó có tồn tại hay không bằng cách
// kiểm tra bảng tồn tạiif(Schema::hasTable('users')){//}// kiểm tra cột tồn tạiif(Schema::hasColumn('users','email')){//}
- Tạo cột:
Schema::create('users',function(Blueprint$table){$table->type('ten_cot');//type ở đây là chỉ các kiểu mà cột đó cần$table->type('ten_cot');}
- Bạn có thể tham khảo các kiểu dữ liệu ở đây: tại đây
6. Foreign Key Constraints
- Để tạo các rằng buộc cho các bảng, chúng ta có thể sử dụng cú pháp sau để rằng buộc cho 2 bảng:
Schema::table('posts',function($table){$table->integer('user_id')->unsigned();$table->foreign('user_id')->references('id')->on('users');});
Kết luận
- Trên đây là những điều cơ bản về migration mình muốn giới thiệu tới các bạn. Mong rằng nó sẽ giúp được các bạn.
- Phần sau mình sẽ giới thiệu cho các bạn về models trong Laravel.
Nguồn: viblo.asia