Django मानचित्र में पोस्टग्रेज़ के लिए डेटा प्रकार स्ट्रिंग शाब्दिक timestamp with time zone
, और उस प्रकार को बदलने का कोई विकल्प प्रतीत नहीं होता है।
जहां तक मेरी जानकारी है, आपके पास तीन विकल्प हैं:
-
कच्चे निष्पादन के लिए Django के हुक का लाभ उठाएं टेबल स्टेटमेंट बनाने के बाद sql . ऐसा करने के लिए
sql
. नामक निर्देशिका बनाएं आपके ऐप में और उस निर्देशिका में एक फ़ाइल जिसेmymodel.postgres_psycopg2.sql
कहा जाता है . अपना परिवर्तन तालिका विवरण वहां रखें। -
टाइमस्टैम्प फ़ील्ड के लिए संशोधक को परिभाषित करने के लिए एक कस्टम फ़ील्ड लिखें जैसा कि आप फिट देखते हैं। देखें "कस्टम मॉडल फ़ील्ड लिखना ".
-
django फ़ील्ड को वैसे ही छोड़ दें, और अपने एप्लिकेशन में टाइमज़ोन रूपांतरण करें ताकि आप पूरी तरह सुनिश्चित हों कि आप सही समय व्यतीत कर रहे हैं।
डेटा अखंडता के लिए मेरी व्यक्तिगत प्राथमिकता #3 है। जैसा कि चरित्र एन्कोडिंग के साथ होता है, जहां आप हमेशा यह सुनिश्चित करना चाहते हैं कि आप वर्णमाला को जानते हैं और रूपांतरणों को ठीक से संभाल रहे हैं, मैं उन तिथियों/समयों के साथ अधिक सहज महसूस करता हूं जिनकी विशेषताओं (टीजेड समेत) को सटीक रूप से परिभाषित किया जा सकता है। आप आज निश्चित हो सकते हैं कि आपका सारा इनपुट आपके ऐप में पहले से ही यूटीसी में आ रहा है, लेकिन यह बदल सकता है, खासकर अगर टाइमस्टैम्प की आपूर्ति अंतिम उपयोगकर्ताओं द्वारा की जाती है। इसके लायक क्या है, मैं अतिरिक्त मील जाऊंगा, ऐप में टाइमस्टैम्प को यूटीसी में परिवर्तित करूंगा, और इसे डीबी में यूटीसी के साथ समय क्षेत्र के रूप में संग्रहीत करूंगा।