Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

liquibase ignores envers tables postfix therefore tables missing #169

Open
zapphyre opened this issue Oct 27, 2017 · 5 comments
Open

liquibase ignores envers tables postfix therefore tables missing #169

zapphyre opened this issue Oct 27, 2017 · 5 comments

Comments

@zapphyre
Copy link

zapphyre commented Oct 27, 2017

I am using liquibase 3.5.3 with hibernate 5.2.9.Final and envers 5.2.12.Final.

liquibase configuration:
pom.xml:

            <plugin>
                <groupId>org.liquibase</groupId>
                <artifactId>liquibase-maven-plugin</artifactId>
                <version>3.5.3</version>
                <configuration>
                    <propertyFile>src/main/resources/liquibase.properties</propertyFile>
                    <promptOnNonLocalDatabase>false</promptOnNonLocalDatabase>
                    <referenceUrl>
                        hibernate:spring:com.nws.vedica.model?dialect=org.hibernate.dialect.PostgreSQL92Dialect
                    </referenceUrl>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>org.liquibase.ext</groupId>
                        <artifactId>liquibase-hibernate5</artifactId>
                        <version>3.6</version>
                    </dependency>
                    <dependency>
                        <groupId>org.springframework</groupId>
                        <artifactId>spring-beans</artifactId>
                        <version>${spring.version}</version>
                    </dependency>
                    <dependency>
                        <groupId>org.springframework.data</groupId>
                        <artifactId>spring-data-jpa</artifactId>
                        <version>1.11.1.RELEASE</version>
                    </dependency>
                    <dependency>
                        <groupId>javax.validation</groupId>
                        <artifactId>validation-api</artifactId>
                        <version>2.0.0.Final</version>
                    </dependency>
                </dependencies>
            </plugin>

liquibase.properties:

url=jdbc:postgresql://212.89.239.181:5432/vedica_db
username=vedic
password=veda
driver=org.postgresql.Driver
outputChangeLogFile=src/main/resources/liquibase-outputChangeLog.xml
changeLogFile=src/main/resources/liquibase-changeLog.xml

JPAConfig.java:

@PostConstruct
    public void init() {
        properties = new HashMap<>();
        properties.put("hibernate.dialect", "org.hibernate.dialect.PostgreSQL92Dialect");
        properties.put("javax.persistence.jdbc.url", dbConnectionURL);
        properties.put("javax.persistence.jdbc.user", dbUser);
        properties.put("javax.persistence.jdbc.password", dbPassword);
        properties.put("hibernate.show_sql", log);
        properties.put("javax.persistence.jdbc.driver", "org.postgresql.Driver");
        properties.put("javax.persistence.target-database", "PostgreSQL");
        properties.put("org.hibernate.envers.audit_table_suffix", "_vers");
        properties.put("org.hibernate.envers.default_schema", "audit");
        properties.put("hibernate.integration.envers.enabled", "true");
        properties.put("hibernate.enable_lazy_load_no_trans", "true");
        properties.put("hibernate.jdbc.batch_size", "20");
        properties.put("hibernate.jdbc.batch_versioned_data", "true");
//        properties.put("hibernate.order_inserts", "true");
//        properties.put("hibernate.order_updates", "true");

        properties.put("hibernate.c3p0.timeout", "300");
        properties.put("hibernate.c3p0.min_size", "7");
        properties.put("hibernate.c3p0.max_size", "20");
        properties.put("hibernate.c3p0.max_statements", "50");
        properties.put("hibernate.c3p0.hibernate.c3p0.idle_test_period", "3000");
        properties.put("hibernate.c3p0.preferredTestQuery","SELECT 1");
        properties.put("hibernate.c3p0.testConnectionOnCheckout","true");
        properties.put("hibernate.c3p0.acquireRetryAttempts","1");
        properties.put("hibernate.c3p0.acquireIncrement","1");
        properties.put("hibernate.c3p0.idleConnectionTestPeriod","60");
        properties.put("hibernate.jdbc.lob.non_contextual_creation","true");
    }

so you see, my audit tables gets generated in 'audit' catalog with the '_vers' suffix.

when I run 'mvn liquibase:diff' it keeps telling me that audit tables are missing:

Missing Table(s): 
     DocShreddingInfo_AUD
     DocType_keywords_AUD
     DocVersion_AUD
     MetaFieldValidityRules_AUD
     Metadata_additions_AUD
     Metadata_json_AUD
     Metadata_patterns_AUD
     PartyKind_AUD
     ValidityRule_AUD
     document_AUD
     document_type_AUD
     product_instance_AUD
     related_doc_AUD
     shredding_type_AUD
     task_AUD

so it can't read suffinx information form the hibernate configuration.
I have tried set @AuditTable on the entity with the value of the actual table name, but does not help.

advice, please.

┆Issue is synchronized with this Jira Bug by Unito

@crtk
Copy link

crtk commented Oct 28, 2017

these might be helpful: #137 #99

@zapphyre
Copy link
Author

I have seen and tried those, that's why I mention I tried @Audittable. But that's workaround anyway. Hope someone can solve it finally.

@MalteKrueger
Copy link

I wrote another workaournd in #99 which could solve this problem. Just set the "unsupported" properties via the environment (i.e -Dorg.hibernate.envers.audit_table_suffix=_vers)

@zapphyre
Copy link
Author

zapphyre commented Jul 3, 2018

Yes, now the problem is that it makes diff of the 'audit' postgre schema but on update goal it updates 'public' schema with the audit tables..
Is there an option to make liquibase preserve schema information?

@felixoi
Copy link

felixoi commented May 5, 2023

Does someone has a fix for this? Struggling with this problem too. @MalteKrueger's workaround seems not to work out for me.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants