Migrasi Ke Django Framework 3.1
Migrasi Ke Django Framework 3.1

Haloo teman-teman, lama sudah saya tidak membuat tulisan disini mungkin sekitar 3 bulan. Itu karena beberapa pekerjaan offline harus segera diselesaikan. Semoga kedepannya, setelah ini saya bisa konsisten membuat tulisan pada blog ini. Sebenarnya sudah ada beberapa artikel yang akan dibuat, tinggal menunggu waktu untuk eksekusi.

Daftar Isi

 

Berbicara mengenai Django, saya mau cerita sedikit saat migrasi dari CMS dan beralih menggunakan Django untuk blog ini.

Devlopment

Tentu saja diawali dengan membangun website djangonya terlebih dahulu. Atau kalau tidak mau repot mungkin bisa menggunakan yang sudah ada. Banyak sekali di GitHub source code yang bisa digunakan.

Kalau membangun dari nol, sebelum ini ada tahap lebih awal lagi yaitu rencana tapi sengaja saya masukkan jadi satu dengan proses development. Jadi, pastikan sudah direncanakan dengan baik, bagaimana konsepnya, backendnya dan termasuk logikanya. Bahkan sebelum membuat web dengan Django ini, saya juga sudah merencanakan akan menggunakan provider yang mana. Apakah itu menggunakan share host atau sewa VPS. Kalau mau menggunakan share host, pilih yang mana penyedianya, server lokal atau luar dan begitu juga vps.

Di Indonesia, memang masih sedikit share hosting yang mengukung python (Django Framework). Dari hasil penelusuran yang saya lakukan beberapa waktu yang lalu, saya hanya menemukan 3 penyedia saja yang akhirnya saya pilih satu dari ketiga layanan itu. Tapi disini, saya belum sewa. Karena belum tau proses devlopmentnya sampai selesai kapan.

Ok, kita anggap semua sudah direncanakan dan sudah fix dan dapat segera untuk dieksekusi.

Pada proses development ini, saya perkirakan 2 minggu selesai termasuk perbaikan error dan itu sudah termasuk pemindahan data artikel dari CMS ke blog baru yang menggunakan Django ini. Tapi perkiraan saya itu ternyata melesel. Ya, karena tidak bisa fokus disini saja.

Saya memulai membuatnya dari fitur dasar dulu, yaitu tentu saja sebagai blog. Setelah selesai itu, saya tambahkan lagi fitu lainnya juga termasuk untuk kebutuhan SEO-nya. Ini yang membuat agak lama, karena saya harus menyesuaikan dengan CMS sebelumnya. Membuat sitemap.xml, robots.txt. Schema.org, rDFA, OpenGraph dan lainnya. Dan beberapa itu, belum saya pasang diblog ini.

Saya juga mempertahankan tampilan, jadi untuk template tetap sama seperti saat menggunakan Drupal. Untuk yang ini bisa dibilang mudah. Seperti yang teman semua lihat saat ini, tidak ada perubahan pada tampilannya.

Tapi memang komentar disqus, untuk sementara ini saya tidak gunakan karena banyak redirect. Mungkin jika sudah menemukan yang lebih bagus settingnya akan diaktifkan kembali.

Testing

Dan selah saya rasa fix, sepertinya sudah siap untuk online. Disini saya tidak langsung menguploadnya ke web server. Tapi teman semua lebih baik diuji dulu. Karena pada saa development, kita menggunakan runserver, dan setelah diupload nanti menggunakan web server apache2 atau NGINX.

Saya membuat lingkungan yang kira-kira mirip ketika saat dionlinekan nanti. Diuji pada webserver apache dan menggunakan MariaDB atau PostgreSQL (saya belum memutuskan yang mana). Dan tidak menggunakan localhost lagi, meskipun sebenarnya itu adalah localhost.

Ternyata, saat mengubah DEBUG = True menjadi DEBUG = False Semua file static tidak bisa diakses, alias menjadi 404. Wow ini masalah pertama yang ditemukan, Ok sudah fix tapi dibagian admin area masih 404.

Untungnya ada Internet dan StackOverFlow, jadi bisa dengan mudah diatasi. Dan masalah selesai.

Lanjut untuk mengupload data artikelnya, sampai selesai.

Production

Akhirnya sampai pada hari yang ditunggu, yaitu mengupload hasil karya saya ke server hosting. Ok, saya memulainya dengan membuat virtualenv pada server hosting, dan menginstall paket yang dibutuhkan. Sampai disini ternyata tidak berlajan baik, ada error terjadi.

Karena saya menggunakan share host, jadi mendapatkan akses terbatas. Sedangkan modul rcssmin membutuhkan akses gcc, dan error Permission denied. Maka, agar tetap bisa menggunakan rcssmin maka saya tidak mengaktifkan c extensions. Meskipun akan membuat kerjanya menjadi lebih lambat.

Selain itu juga, terdapat beberapa error yang dikarenakan perbedaan lokasi file static. Saat development biasa kalau menempatkan file static dan media itu satu tempat pada Base Directory. Sedangkan saat online tempatnya bisa berbeda, tergantung dari konfigurasi servernya.

Ditambah lagi dengan file robots.txt, sitemap.xml, dan file html lainn seperti verifikasi google webmaster dan lainnya. Ini perlu beberapa trik untuk mengaksesnya. Tapi syukurlah semua itu bisa diselesaikan.

Kesimpulan

Kalau teman-teman mendapatkan error saat mengakses blog ini, saya berharap dapat menyampaikan ke saya melalui kontak yang tersedia.

Sejak menggunakan Drupal 8, saya merasakan performa yang kurang cepat. Tapi sebenarnya untuk fitur, bisa dikatakan memiliki semua yang saya butuhkan. Untuk migrasi dari Drupal 8 Ke Django Framework, sudah ada tool yang membantu. Tapi karena saya tidak begitu mengerti tentang struktur database yang digunakan drupal, maka tidak menggunakan tool itu.

Kalau teman semua ingin migrasi dari CMS/Framework ke Django, maka perlu membuat pertimbangan terlebih dahulu. Termasuk pada waktu, fitur, dan bagaimana cara memindahkan data lama ke Django.

Point dari yang ingin saya tulis adalah:

  • Membuat model yang sesuai dengan CMS sebelumnya.
  • Gunakan unit test django, ini untuk pengujian model.
  • Membuat utilitas yang dapat diload pada django, agar kita tau models yang dibuat sudah sempurna atau belum. Kalau belum, perbaiki lagi, test, perbaiki, dan test sampai dirasa sudah sempurna.
  • Konfigurasi admin interface, berguna juga untuk memeriksa apakah data models sudah benar.
  • Mulai membuat template
  • Melakukan pemetaan URL
  • Periksa kembali

Setelah online, masih tetap harus melakukan perawatan dan update agar web tetap dapat bekerja dengan baik. Mungkin ada bug dan beberapa error yang baru ditemukan kemudian hari.