Linux添加環境變量和Django自動切換配置文件版本

這兩天讓一個問題搞得很頭疼,就是使用south進行數據庫遷移的時候發現south在處理自定義用戶模型的時候會出bug(這個問題稍後的文章會講的),使用網上的辦法的時候老是發現數據庫根本寫不進數據去。今天才發現緣由,原來是我ssh到服務器上直接操做的,而服務器上的Django使用的是server_settings.py文件,這樣的話,咱們進行操做的時候就必須指定配置文件,好比python manage.py syncdb --settings=***.server_settings可是我忘了這個,致使使用的是本地的配置文件寫入的是sqlite數據庫。。
爲了不這個問題,我就想到一個辦法就是讓Django本身去選擇配置文件。首先是在服務器上設置一個自定義的環境變量,一種是臨時的環境變量,shell關掉以後就沒了,python

$ export HELLO="Hello!"
$ echo $HELLO
Hello!

另外一種纔是永久的,就是編輯/ect/profile文件,而後在末尾追加sql

ENV=SERVER
export ENV

而後在settings.py中這樣寫就行了:shell

import os
env = os.environ.get("ENV", None)
if env == "serrver":
    from .server_settings import *
else:
    from .local_settings import *

這樣就行了數據庫

相關文章
相關標籤/搜索