Database Model Seeder

 

Database Model Seeder

Menambahkan user_id ke table blog_posts 

1. Menambahkan migration php artisan make:migration add_user_to_blog_posts_table


2. Buka file database/migrations/xxxx_xx_xx_xxxxxx_add_user_to_blog_posts_table.php, kemudian tambahkan code dibawah ini


3. Jalankan migration php artisan migrate


4. Setelah migration, maka column user_id akan menjadi NULL, silahkan isi dengan nilai ada di table users

Refreshing Database
1. Kita perlu ubah dulu table migration database/migrations/xxxx_xx_xx_xxxxxx_add_user_to_blog_posts_table.php untuk memastikan user_id tidak NULLABLE. Lihat line 17-18.
 

2. Untuk me-refresh database, jalankan command dibawah ini php artisan migrate:refresh

3. Untuk mengisi kembali data-data tersebut kita akan menggunakan fitur seeder dari laravel. Untuk menjalankan fitur tersebut cukup dengan menjalankan command dibawah ini. php artisan db:seed

Basic Database Seeder 
1. Buka file database/seeders/DatabaseSeeder.php, ubah menjadi seperti ini. Line 6-7 dan line 20-26. Password → secret = '$2y$10$TKh8H1.PfQx37YgCzwiKb.KjNyWgaHb9cbcoQgdIVFlYg7B77UdFm


2. Jalankan command laravel seeder php artisan db:seed 


3. Sekarang kita lihat di table users, row dengan email sudah terinput.

Menggunakan Model Factory Untuk Database Seeder 

1. Menggunakan model factory untuk melakukan seeding table users. Buka file database/seeders/DatabaseSeeder.php, ubah menjadi seperti ini. Line 28-29.


2. Jalankan command refresh-seeder php artisan migrate:refresh --seed 

3. Lihat di table users, akan ada 6 rows yang sudah terinput

4. Data pada rows 2-6, dibuat berdasarkan pada file UserFactory (database/factories/UserFactory.php). Secara default code pada line 29, akan memanggil function definition() pada file database/factories/UserFactory.php. 

5. Kita bisa membuat custom function, dalam hal ini disebut dengan istilah state. Untuk membuat UserFactory state, kita bisa menambahkan fungsi baru.

6. Buka file database/factories/UserFactory.php dan tambahkan code dibawah ini. Line 34 - 48. 


7. Buka file database/seeders/DatabaseSeeder.php, dah ubah menjadi seperti ini. Line 20 - 30


8. Jalankan command refresh-seeder php artisan migrate:refresh --seed

Model Factory Untuk BlogPost 

1. Buat BlogPost model factory dengan menjalankan command di bawah ini. Code di bawah ini akan membuat file database/factories/BlogPostFactory.php. php artisan make:factory BlogPostFactory

2. Buka file database/factories/BlogPostFactory.php dan tambahkan code di bawah ini. Line 25 - 27.


3. B u k a file d a t a b a s e / s e e d e r s / D a t a b a s e S e e d e r . p h p d a n t a m b a h k a n c o d e di b a w a h ini. Line 35 - 36.


4. Ketika menjalankan command refresh-seeder, maka akan muncul error seperti dibawah ini. php artisan migrate:refresh --seed


Comments

Popular posts from this blog

Konsep estetika gambar pada desain

Cloud Infrastructure Mechanism