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:

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.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s