0
votes

En Java, Spring maintenait la base de données sans aucun script

Je travaille sur un projet en Java (à l'aide de chaussures de printemps, Thymeleaf, Hibernate, JPA, MySQL). Chaque fois que je crée une nouvelle classe de modèle, je dois créer une table dans la base de données ou si je fais une modification de la classe modèle, je dois modifier la table par moi-même. Y a-t-il un moyen d'éviter cette base de données. Par exemple, je vais créer des classes de modèle et déclarer leurs relations mes tables de base de données seront générées automatiquement. À l'avenir, si je modifie mes classes, ils seront appliqués à la base de données automatiquement sans perdre de données.

Auparavant, j'ai travaillé sur PHP, Laravel. Là tout ce que je devais faire, c'est 1) Commande d'exécution PHP Artisan FAIT: Migration Create_posts_table , 2) Déclarez des colonnes telles que $ TABLE-> CORDER (CODE>, Code> $ TABLE -> ÉTRANGER ("user_id ') -> Références (" ID ") -> On (" Utilisateurs'); puis 3) Commande Exécuter PHP Artisan migrer . C'est ça. Aucun script SQL n'est nécessaire. Je me demandais si Java, Spring a quelque chose comme ça.


3 commentaires

En fait, je pense que c'est une mauvaise pratique pour que la base de données soit générée automatiquement, simplement parce que vous n'avez pas / contrôle limité sur les noms de contraintes. Aussi, lorsqu'un changement passe en production, vous ne pouvez être sûr que si la base de données ne sera en aucun cas endommagée, si vous le faites manuellement


Aussi Cette réponse explique ce que printemps.jpa.hibernate.ddl-auto = mise à jour


@XtremeBaumer merci. J'ai déjà vu cette réponse. Mais il n'est pas recommandé d'utiliser dans la production. C'est pourquoi je cherchais d'autres options. Donc, si j'utilise printemps.jpa.hibernate.ddl-auto = mise à jour dans le développement et supprimez de la production, une modification est terminée sur le projet comment la modification peut être appliquée à la partie de production?


3 Réponses :


1
votes

Voie idéale XXX

À mon avis, la manière idéale est de créer un fichier SQL qui créera le schéma au démarrage pour nous.


pour laisser le démarrage à ressort pour le créer pour vous xxx

Autres valeurs possibles: Créer, Créer-goutte, validez

Explication plus détaillée


0 commentaires

2
votes

Bien sûr, vous pouvez le faire.

Utiliser printemps.jpa.hibernate.ddl-auto = mise à jour dans votre application.properties.

Vous pouvez également utiliser des outils plus avancés tels que https://www.liquibase.org/


0 commentaires

0
votes

Vous pouvez faire de la migration à l'aide de la migration de la migration de Laravel.

Ajoutez la dépendance et placez vos fichiers SQL de migration à CLASSPATH: DB / Migration. La voie aérienne vérifiera automatiquement la version des fichiers SQL et appliquera toutes les migrations en attente.

https://flywaydb.org/documentation/plugins/springboot


0 commentaires