2012-10-02 9 views
5

Grails 2.0.3, database-migrasyon (liquibase) eklentisi 1.1 ve postgres 9.1 kullanıyorum.Liquibase: grails eklentisi ve varsayılan olmayan şema kullanılarak zaten "databasechangeloglock" ilişkisi var,

ben ne düşünüyorum bu diğer kullanıcılar tarafından açıklanan aynı sorun olmakla birlikte, kırışıklıkların ile görüyorum:

kırışıklıklar olduğu:

  1. Veritabanlarını ve veritabanı geçiş eklentisini kullanıyorum.
  2. Üretim veritabanı varsayılan şemayı kullanmaz. Hiçbir geliştiricinin gerçek üretim veritabanlarına erişemediği için, otomatik veritabanı geçişini başlangıçta kullan (grails.plugin.databasemigration.updateOnStart = true), (10) 101.

Sorun hakkındaki bilgim, likidibin bakım tablolarının varlığı için varsayılan şemayı denetlemesi ve daha sonra, varsayılan olmayan şema olan doğru yerde tablo oluşturma girişiminde bulunmasıdır. Ama elbette, ilk infazdan sonra zaten varlar. Bir komut satırı seçeneği belirterek bir geçici çözüm var gibi görünüyor, ama ben otomatik olarak çalıştırılması gerekliliği nedeniyle, grails uygulamasında dağıtılmış olarak bu seçeneği yok.

Veritabanı geçiş eklentisini ihtiyacım olan şeyi yapmanın bir yolu var mı? DBA'ların şemaları farklı şekilde düzenlemelerini söylemek bir seçenek değildir. Ray A. Conner

cevap

3

Ön koşullar ve yeniden düzenleme komutları bir öznitelik SchemaName almak önceden

sayesinde.

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

Ayrıca bunu parametrize olabilir:

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

Liquibase kendisi için, defaultSchemaName ayarlayabilirsiniz, davanızı (Grails) bu olmalıdır: tablolar üstlenmeden içindir

grails.plugin.databasemigration.updateOnStartDefaultSchema 
+0

benim uygulamamın şeması. Bu sorun likidobazın kendisi için oluşturduğu, değişimleri tutmak ve içsel kilitleme için olduğu tablolarla ilgilidir. –

+0

Davanızı da ekledik. –

+1

Bu sorunun nerede olduğuyla ilgili işten ayrıldım ve düzenlemenizi doğrulamak için henüz bir çevre oluşturmadım. Umarım çok geçmeden bunu yapabilirim. –