Cara Mengatasi Error SQLSTATE[42S02] Base Table or View Not Found di Laravel

Error berikut sering muncul saat menjalankan aplikasi atau migrasi Laravel: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'database.posts' doesn't exist Artinya Laravel...

Cara Mengatasi Error SQLSTATE[42S02] Base Table or View Not Found di Laravel

Error berikut sering muncul saat menjalankan aplikasi atau migrasi Laravel:

SQLSTATE[42S02]: Base table or view not found:
1146 Table 'database.posts' doesn't exist

Artinya Laravel mencoba mengakses tabel yang belum ada di database. Berikut penyebab umum dan solusinya.

1. Migrasi Belum Dijalankan

Penyebab paling umum: Anda sudah membuat migration tapi lupa menjalankannya. Jalankan:

php artisan migrate

Cek dulu status migrasi untuk memastikan mana yang belum jalan:

php artisan migrate:status

2. Salah Nama Tabel di Model

Secara default Eloquent menebak nama tabel dari nama model (jamak, snake_case). Model Post โ†’ tabel posts. Jika nama tabel Anda berbeda, tentukan manual:

class Post extends Model
{
    protected $table = 'artikel'; // nama tabel sebenarnya
}

3. Terhubung ke Database yang Salah

Bisa jadi tabel ada, tapi di database berbeda. Periksa .env:

DB_DATABASE=nama_database_yang_benar

Lalu bersihkan cache config:

php artisan config:clear

4. Error Saat migrate:fresh karena Urutan Foreign Key

Jika migrasi gagal di tengah karena urutan (tabel anak dibuat sebelum tabel induk), pastikan migration tabel induk memiliki timestamp lebih awal. Untuk reset bersih:

php artisan migrate:fresh

Perhatian: migrate:fresh menghapus semua data. Jangan jalankan di server produksi.

5. Menjalankan Query Sebelum Migrasi (Contoh: Seeder)

Kalau seeder atau kode berjalan sebelum tabel dibuat, error ini muncul. Pastikan urutan: migrasi dulu, baru seed:

php artisan migrate --seed

Khusus Saat Deploy ke Server

Setelah upload ke hosting, jangan lupa jalankan migrasi di server (atau impor struktur database via phpMyAdmin). Banyak yang lupa langkah ini sehingga aplikasi lokal jalan tapi versi live error.

php artisan migrate --force

Kesimpulan

Error SQLSTATE[42S02] berarti tabel yang diminta tidak ada โ€” biasanya karena migrasi belum dijalankan, salah nama tabel di model, atau terhubung ke database yang salah. Periksa migrate:status dan .env lebih dulu. Untuk memahami migration lebih dalam, lihat panduan kami tentang cara membuat migration dan seeder di Laravel.

sqlstate 42s02 base table or view not found table doesnt exist laravel error migrasi laravel laravel tabel tidak ditemukan
Bagikan artikel
Kembali

Komentar (0)

Punya pertanyaan atau tambahan? Tulis di bawah โ€” tak perlu login.

Membalas komentarโ€ฆ batal

Belum ada komentar. Jadilah yang pertama!

๐Ÿš€ Partner Recommendation

Butuh Source Code & Aplikasi Premium?

Download aplikasi Laravel, POS, Sekolah, Klinik, ERP, dan source code siap pakai di GudangCode.

GudangCode
  • โœ” Source Code Premium
  • โœ” Sistem Siap Pakai
  • โœ” Lifetime Update
  • โœ” Membership Lifetime
  • โœ” Update Aplikasi Harian
Daftar Membership โ†’