Manajemen Settings di Django untuk Workflow yang Efisien
Di era workflow yang serba menggunakan git, sangat tidak lucu jika harus melakukan seremonial git (git push dan git pull) hanya untuk meng-update DEBUG=True ke DEBUG=False di file settings.py. Sementara beberapa baris di file ini sering berubah sesuai dengan kebutuhan konfigurasi aplikasi.
Bagaimana solusinya? Ada banyak sebenarnya, mulai dari membuat file yaml, ini, env, namun yang paling mudah menurut saya adalah dengan membuat file local_settings.py pada direktori yang sama dengan direktori di mana file settings.py berada. Baris-baris kode di local_settings berfungsi untuk meng-override kode di settings.py. Untuk itu, tambahkan baris berikut di settings.py bagian PALING BAWAH:
Selanjutnya mari kita override variabel DEBUG, perhatikan contoh berikut:
Maka jika kita memanggil settings.DEBUG, nilainya sekarang False. Agar perubahan di local_settings.py tidak di-index oleh git, tambahkan di .gitignore file local_settings.py
Nah dengan begini, workflow akan lebih efisien, dan Anda sebagai developer juga tidak perlu bolak-balik melakukan seremonial git yang tidak perlu.
Bagaimana solusinya? Ada banyak sebenarnya, mulai dari membuat file yaml, ini, env, namun yang paling mudah menurut saya adalah dengan membuat file local_settings.py pada direktori yang sama dengan direktori di mana file settings.py berada. Baris-baris kode di local_settings berfungsi untuk meng-override kode di settings.py. Untuk itu, tambahkan baris berikut di settings.py bagian PALING BAWAH:
try:
from local_settings import *
except ImportError as e:
if "local_settings" not in str(e):
raise e
Selanjutnya mari kita override variabel DEBUG, perhatikan contoh berikut:
# settings.py
DEBUG = True
# local_settings.py
DEBUG = False
Maka jika kita memanggil settings.DEBUG, nilainya sekarang False. Agar perubahan di local_settings.py tidak di-index oleh git, tambahkan di .gitignore file local_settings.py
Nah dengan begini, workflow akan lebih efisien, dan Anda sebagai developer juga tidak perlu bolak-balik melakukan seremonial git yang tidak perlu.
Comments
Post a Comment