2011-03-24 15 views
6

में "टाइम ज़ोन के बिना टाइमस्टैम्प" प्रकार के साथ कॉलम नहीं बना सकता है जब मैंने पोस्टग्रेस्क्ल में डेटा प्रकार "टाइमस्टैम्प बिना टाइम ज़ोन" के साथ कॉलम बनाने का प्रयास किया है, यह हमेशा डेटाबेस में "टाइमस्टैम्प टाइम टाइम" के रूप में बनाया गया है, तो क्या इस समस्या के लिए कोई कामकाज या समाधान है?PostgreSQL

<addColumn tableName="myTable"> 
      <column name="date_added" type="TIMESTAMP WITHOUT TIME ZONE"> 
      <constraints nullable="false" /> 
      </column> 
</addColumn> 

btw, इस मुद्दे jira पर है: http://liquibase.jira.com/browse/CORE-877

+2

ध्यान रखें कि लिक्विबेस XML टैग को PostgreSQL SQL कमांड में व्याख्या कर रहा है। यह सुनिश्चित करने के लिए कि एसक्यूएल को निष्पादित किया जा रहा है, यह देखने के लिए कि क्या वास्तविक एसक्यूएल उत्पन्न किया जा रहा है, अद्यतन एसक्यूएल विकल्प के साथ लिक्विबेस चलाएं। – Kuberchaun

+3

क्या आप इस बग को लिक्विबेस में ठीक नहीं कर सकते? यही वह जगह है जहां असली समस्या है, लिक्विबेस गलत एसक्यूएल बनाता है। –

उत्तर

0

इस पृष्ठ को पढ़ें http://www.liquibase.org/documentation/sql_format.html। यदि आप Liquibase के साथ SQL प्रारूप का उपयोग करते हैं तो बस मैन्युअल रूप से आवश्यक एसक्यूएल में टाइप करें। http://www.liquibase.org/documentation/modify_sql.html

अपने मामले में उदाहरण आप इस के लिए होता है के लिए

: टैग का उपयोग और एसक्यूएल करने के लिए XML से पूरी तरह से स्विच के

1

आप सटीक एसक्यूएल अगर liquibase आप के लिए गलत एसक्यूएल पैदा कर रहा है आप चाहते हैं कर रहे हैं बनाने के लिए < एसक्यूएल > टैग का उपयोग कर सकते हैं।

+0

कृपया इसे कैसे करें? –

+1

@ तलवार 101 मुझे लगता है कि आपको http://www.liquibase.org/manual/custom_sql पर देखने की आवश्यकता है। – Kuberchaun

+0

@ स्टारशिप 3000 हां, मैं एसक्यूएल टैग के चारों ओर कोण ब्रैकेट से बचने के लिए भूल गया था और इसलिए यह नहीं दिखाया गया। उस –

12

इसके बजाय, आप जिसके परिणामस्वरूप उत्पन्न एसक्यूएल टैग जो पूरे changeset भर में मान्य है का उपयोग करते हुए संशोधित कर सकते हैं:

<modifySql dbms="postgresql"> 
    <replace replace="WITH" with="WITHOUT"/> 
</modifySql> 
+0

के बारे में क्षमा करें! यह बहुत अच्छा काम करता है। एक टिप: संशोधित एसक्यूएल तत्व परिवर्तन के अंदर जाता हैसेट तत्व और पूरे परिवर्तन में काम करता हैसेट। हालांकि, यह केवल तभी वैध था जब मैं संशोधित एसक्यूएल तत्व को अंदर रखता हूं लेकिन परिवर्तन के अंत में। और वर्तमान लिंक http://www.liquibase.org/documentation/modify_sql.html है – Humber