[ https://issues.apache.org/jira/browse/ISIS-1471?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15383975#comment-15383975 ]
Dan Haywood edited comment on ISIS-1471 at 7/19/16 11:25 AM: ------------------------------------------------------------- Oscar wrote: Hi, Jeroen. Nice to know you drop the constraints when upgrading. I’ve also noticed that they get duplicated. Seems DN does not detect they’re already created and re-create them. In my case the db is PostgreSQL. As you’re using MS SQL Server in Estatio, seems it can be a generic issue. It’s strange DN does not have addressed it. Please, confirm me if that’s the issue causing you to delete the constraints and I would create a issue in the DN ticketing system. Thanks, Oscar was (Author: danhaywood): Oscar: Hi, Jeroen. Nice to know you drop the constraints when upgrading. I’ve also noticed that they get duplicated. Seems DN does not detect they’re already created and re-create them. In my case the db is PostgreSQL. As you’re using MS SQL Server in Estatio, seems it can be a generic issue. It’s strange DN does not have addressed it. Please, confirm me if that’s the issue causing you to delete the constraints and I would create a issue in the DN ticketing system. Thanks, Oscar > Integrate Flyway or Liquibase or something similar > -------------------------------------------------- > > Key: ISIS-1471 > URL: https://issues.apache.org/jira/browse/ISIS-1471 > Project: Isis > Issue Type: New Feature > Components: Core > Affects Versions: 1.13.0 > Reporter: Dan Haywood > Assignee: Dan Haywood > Fix For: 1.14.0 > > > from Kambiz: > Hi, > in our non-Isis projects, we use FlyWay [1] for DB migrations and I > would like to integrate it into our Isis workflow. The simplest path to > do so would be a DomainService with a PostConstruct annotated init > method: > @PostConstruct > public void init(final Map<String, String> properties) { > Flyway flyway = new Flyway(); > // Point it to the database > String jdbcUrl = > properties.get("isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionURL"); > String user = > properties.get("isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionUserName"); > String password = > properties.get("isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionPassword"); > flyway.setDataSource(jdbcUrl, user, password); > flyway.setLocations("classpath:db/migrations"); > // Start the migration > flyway.migrate(); > } > but this isn't a viable solution, as IsisSessionFactoryBuilder's > buildSessionFactory() method initialises the DataNucleus (DN) > PersistenceSessionFactory before the services are constructed [2]. > So DN has already found the mismatch between the JDO annotations and the > database before we enter the init method of our DB migration > bootstrap/seed service. > I could contribute a patch, if someone could hint on the preferred way > of implementing the functionality. > Thank you > Kambiz > [1] https://flywaydb.org/ > [2] > https://github.com/apache/isis/blob/master/core/runtime/src/main/java/org/apache/isis/core/runtime/system/session/IsisSessionFactoryBuilder.java#L184 -- This message was sent by Atlassian JIRA (v6.3.4#6332)