Minisha
Minisha

Reputation: 2237

Database table creation and updation with springboot, spring data

For the database schema management with spring data/hibernate, setting spring.jpa.hibernate.ddl-auto option doesn't look like a cleaner approach.

Bcoz

1) We are forced to put the credentials of a user that has permission to create and delete in the application.properties.

2) In production, relaying on spring.jpa.hibernate.ddl-auto option could lead to dataloss, if not managed carefully.

So what is the best way out there to handle the database schema management automatically in a spring boot/spring data app?

Any pointers would help.

Thanks

Upvotes: 0

Views: 401

Answers (2)

Jayesh Mulwani
Jayesh Mulwani

Reputation: 665

In production, you should ideally set spring.jpa.hibernate.ddl-auto property as none so that no schema changes are allowed.

For the database schema management with spring data/hibernate, I would suggest you go for Liquibase, it basically is an open source database-independent library for tracking, managing and applying database schema changes.

Every change to Schema is added as a changeset using property file in Liquibase , this is for the new changes.

In order to migrate the existing database structure into Liquibase, it provides you with commands to automatically generate Changesets by reading the current database.

So using this you can generate database schema, add constraints, load data.

More info at : https://www.liquibase.org/ , Why and when Liquibase?

Upvotes: 0

GolamMazid Sajib
GolamMazid Sajib

Reputation: 9447

If you want to track each change state of database then you can use flyway

See this link how to maintain database versioning in spring-boot

Upvotes: 0

Related Questions