Default To Hibernate In DevMode
Since 4.6 you need to specify Liquibase scripts for schemas
When developing locally you can avoid that by letting Hibernate manage the schema which requires the following command line option
java -jar corda.jar --allow-hibernate-to-manage-app-schema
*Corda should default to this when `devMode=true`.*
When in devMode there is already a warning text on startup.
This text could also warn you that you need Liquibase scripts when not in dev mode.
If the user wanted to test their Liquibase scripts locally they would just need to pass the relevant command line parameter to enable it.
I imagine that most people are happy to let hibernate manage their schema at the beginning and aren't interested in the Liquibase scripts until they are closer to deploying on a server for QA or UAT testing.
Therefore, it makes much more sense to just default to hibernate in dev mode rather than requiring the user to enter it every single time.
Created by github action.
Yes this change was intentional.
We already have too many things switched implicitly on devMode
Liquibase scripts are an crucial part of CorDapps with custom schemas. We want people to think about liquibase scripts rather early in the development process. We know that a lot of customers run with devMode = true until very late in their test cycle, and we want to avoid the nasty surprise of “Nothing works in UAT/prod deployment because we suddenly need liquibase scripts”.
The liquibase scripts are not required by default for unit tests/integration tests, and nodes can be run without them using that extra flag for the time while developing the schema. It should not be BAU to run without scripts even when developing CorDapps.
Once scripts have been added, CordFormation can run the schema set-up as part of the deployNodes step.
Hi - Can you please review above comments, this was raised by Open Source community. Please advise if this change was intentional, if so - can you add comments as to why this design decision was made?