Koneksi Codeigniter dengan PostgreSQL

Ceritanya saya sedang melakukan porting sebuah aplikasi desktop menjadi aplikasi web. Aplikasi desktopnya dibuat dengan Power Builder dan database PostgreSQL . Dan untuk aplikasi webnya, Codeigniter (CI) menjadi framework andalan dan MySql untuk databasenya.

Jadi kali ini saya akan mencoba dulu menjajal PostgreSQL sebagai database CI.

So here we go…

1.  Download PostgreSQL

Saya mendownload PostgreSQL 9.3.1.1 untuk Windows di sini

Setelah download, coba menginstall.  Semua pilihan saya biarkan default. Untuk password user postgres saya isikan: sandi1234 Awalnya lancar, namun sedikit lagi mau selesai, tampil error:

 

Problem running post-install step. Installation may not complete correctly
The database cluster initialisation failed.

Saya sedikit shock. Langkah awal yang hanya klik Next-Next-Next saja tidak berjalan mulus. Saya klik OK, dan proses install selesai.  Tapi, hati dan jiwa tidak tenang karena error tersebut.  Saya coba googling, sepertinya masalah ada di seputar hak akses di Windows, karena secara default PostgreSQL di install di C:/Program Files.

Saya coba uninstall, kemudian install lagi. Kali ini saya tidak pilih lokasi di luar Program Files, tapi di C:/postgre. Dan kali ini proses install berhasil dengan mulus.

2. Restore

Dengan menggunakan pgAdmin saya membuat database baru bernama myappdb, kemudian melakukan restore dari file backup database aplikasi desktop. Proses restore berjalan lancar. Langkah-langkahnya tidak perlu saya jabarkan di sini, karena bisa dilihat di dokumentasi pgAdmin.

Oke. Sekarang  saatnya melakukan koneksi dari CI ke PostgreSQL.

3.  Konfigurasi Database

Di source project CI, buka folder application/config, buka file database.php menggunakan editor. (Saya menggunakan Netbeans 8). Saya ubah konfigurasinya sebagai berikut:

4. Test koneksi

Di database myappdb ada tabel bernama employee. Saya ingin membaca kolom emp_id dan emp_name dari table ini.

Saya buat Model bernama m_employee, kemudian menambahkan fungsi berikut:

Kemudian saya buat controller bernama employee, dan di function index saya isi :

Seharusnya kode ini ada di view, tapi berhubung untuk keperluan testing koneksi,  saya buat di Controller saja

Saya jalankan di browser, dan ternyata……. BLANK!

Seharusnya fungsi di atas akan menampilkan tabel berisi ID dan nama karyawan yang ada di table employe. Namun browser tidak menampilkan apapun, bahkan pesan error juga tidak ada. Hanya layar kosong, putih, seputih si Putih anjingnya Shincan.

Googling lagi… dan ternyata diakibatkan ekstensi PostgreSQL belum aktif di PHP.
Untuk mengaktifkan, buka file php.ini, hilangkan tanda ; pada baris berikut:

Menjadi

Restart Apache, dan reload browser. Dan tadaaa…!!!! Akhirnya berhasil menampilkan ID dan nama-nama karyawan yang ada di table employee.  Artinya, koneksi CI dengan PostgreSQL sudah berhasil dilakukan.

Kode yang berhubungan dengan database di semua Model, tidak ada perubahan baik menggunakan MySQL atau PostgreSQL, karena fitur Active Record di CI bisa melakukan operasi  terhadap database yang berbeda dengan kode yang sama. Kita tidak harus memikirkan mysql_query,  pg_query, dan syntax lainnya saat melakukan query di PHP. CI does it all for us 🙂

One thought to “Koneksi Codeigniter dengan PostgreSQL”

Leave a Reply