Im currently developing a servlet homepage (spring + hibernate + mysql). Im at the moment using the Hibernate property hibernate.hbm2ddl.auto set to update. This is working fine and Hibernate creates and updates my tables. However, Ive have read on multiple places that this is not recommended in production and that it is unsafe. But if I dont put this option my tables is not created, and I really don't want to create my tabels manually on the server. I got limited time working on this alone.
How is this usually done? It's seems like it is quite much work to add all tables manually imo.
In production, you typically have already existing tables with a large amount of data that you don't want to lose, and that you want to migrate to the new schema. Hibernate can't do that automagically for you. It doesn't know that the data that was previously in column A must now be in the new column B.
So you'll need to create a migration script. Of course, you can use Hibernate to generate the new schema for you in development, see what the differences with the old schema are, and create your script thanks to that. But yes, having an app in production and migrate it needs some work to be done.