2012-10-02 8 views
5

का उपयोग कर मैं grails 2.0.3, डेटाबेस-माइग्रेशन (तरल पदार्थ) प्लगइन 1.1, और postgres 9.1 का उपयोग कर रहा हूँ।लिक्विबेस: संबंध "डेटाबेसchangeloglock" पहले से मौजूद है, grails प्लगइन और गैर-डिफ़ॉल्ट स्कीमा

मैं क्या मुझे लगता है कि एक ही मुद्दा इन अन्य उपयोगकर्ताओं के द्वारा वर्णित है, लेकिन झुर्रियों के साथ देख रहा हूँ:

झुर्रियां हैं कि:

  1. मैं grails और डेटाबेस-माइग्रेशन प्लगइन का उपयोग कर रहा हूँ।
  2. उत्पादन डेटाबेस डिफ़ॉल्ट स्कीमा का उपयोग नहीं करता है।
  3. I प्रारंभ पर स्वचालित डेटाबेस माइग्रेशन का उपयोग करें (grails.plugin.databasemigration.updateOnStart = true), क्योंकि किसी डेवलपर के पास वास्तविक उत्पादन डेटाबेस तक पहुंच नहीं है।

समस्या की मेरी समझ यह है कि तरल पदार्थ अपनी रखरखाव तालिकाओं के अस्तित्व के लिए डिफ़ॉल्ट स्कीमा की जांच कर रहा है, और फिर सही जगह पर टेबल को गैर-डिफ़ॉल्ट स्कीमा बनाने का प्रयास करता है। लेकिन निश्चित रूप से वे पहले निष्पादन के बाद पहले ही मौजूद हैं। एक कमांड लाइन विकल्प निर्दिष्ट करके एक कामकाज प्रतीत होता है, लेकिन मेरे पास स्वचालित विकल्प चलाने की आवश्यकता के कारण वह विकल्प नहीं है, जैसा कि grails ऐप के रूप में तैनात किया गया है।

क्या डेटाबेस-माइग्रेशन प्लगइन बनाने की कोई ज़रूरत है जो मुझे चाहिए? अलग-अलग स्कीमा को व्यवस्थित करने के लिए डीबीए को एक विकल्प नहीं है।

अग्रिम धन्यवाद, रे ए कोनर

उत्तर

3

पूर्व शर्त और पुनर्रचना के आदेशों एक विशेषता schemaName ले।

<tableExists schemaName="myschema" tableName="..."/> 
<createTable schemaName="myschema" tableName="..."/> 

आप भी इसे parametrize कर सकते हैं:

<databaseChangeLog ..> 
    <property name="schema.name" value="myschema"/> 
    .... 
    <changeset ...> 
    <createTable schemaName="${schema.name]" tableName="..."/> 
    </changeset> 
</databaseChangeLog> 

Liquibase खुद के लिए, आप defaultSchemaName सेट कर सकते हैं, अपने मामले (Grails) में यह होना चाहिए:

grails.plugin.databasemigration.updateOnStartDefaultSchema 
+0

में तालिकाओं पुनर्रचना के लिए है कि मेरे ऐप की स्कीमा। यह समस्या उन तालिकाओं के साथ है जो तरल पदार्थ स्वयं के लिए बनाता है, परिवर्तनों को पकड़ने और आंतरिक लॉकिंग के लिए। –

+0

अपना केस भी जोड़ा गया। –

+1

मैंने नौकरी छोड़ दी है जहां यह एक मुद्दा था, और मैं अभी तक आपके संपादन को सत्यापित करने के लिए पर्यावरण स्थापित करने में सक्षम नहीं हूं। उम्मीद है कि बहुत लंबे समय से पहले मैं ऐसा करने में सक्षम हूं। –

संबंधित मुद्दे