ruby on rails - How to set the default value for a datetime column in migration script? -
नीचे तालिका निर्माण स्क्रिप्ट पर विचार करें:
create_table: foo do | t | T.datetime: start_at,: null = & gt; झूठे अंत
क्या वर्तमान समय के रूप में डिफ़ॉल्ट मान सेट करना संभव है?
मैं एसक्यूएल कॉलम की परिभाषाओं के लिए रेल में एक डीबी स्वतंत्र समकक्ष ढूंढने की कोशिश कर रहा हूं
ओरेकल सिंटैक्स
start_at तिथि DEFAULT SYSDATE ()
MySQL सिंटैक्स
start_at TIMESTAMP डिफॉल्ट CURRENT_TIMESTAMP
OR
start_at DATETIME डिफॉल्ट अब ()
आप इस तरह एक मॉडल में फ़ंक्शन जोड़ सकते हैं:
पहले सेट करें: set_foo_to_now def set_foo_to_now self.foo = समय.अब अंत
ताकि मॉडल वर्तमान समय को मॉडल में सेट कर देगा।
आप कुछ एसक्यूएल भी डाल सकते हैं डेटाबेस स्तर पर डिफ़ॉल्ट मान सेट करने के लिए माइग्रेशन में कोड, कुछ ऐसा ही होता है:
execute 'alter table foo change column start_at डिफ़ॉल्ट सेट आता है ()'
< P> कुछ सेट करना इस तरह से बात: <पूर्व> create_table: foo do | t | T.datetime: start_at,: null = & gt; गलत, डिफ़ॉल्ट = & gt; टाइम। अब एंड
टाइमएन फ़ंक्शन को माइग्रेट करने के दौरान निष्पादित करने के कारण होता है, तो डेटाबेस में तालिका इस तरह बनाई जाती है:
बनाओ टेबल फ़ू (start_at टाइमस्टैम्प नल डिफॉल्ट '2009-01-01 00:00:00');
लेकिन मुझे लगता है कि यह आपकी इच्छानुसार नहीं है।
Comments
Post a Comment