Pourquoi hbm2ddl.auto
et hbm2ddl.import_files
des propriétés sont mal
(Lorsque utilisé comme un outil de base de données de gestion du changement)
Comme dit ailleurs, à l'aide de hibernate.hbm2ddl.auto
et hibernate.hbm2ddl.import_files
de la base de données de gestion du changement a quelques graves inconvénients:
- La structure peut être changée. Les valeurs existantes peuvent être remplacées ou - dans le pire des cas - simplement envoyé dans le Nirvana. Sans un outil comme liquibase ou scriptella, vous n'avez pas d' ETL capacités.
- Cette méthode n'a pas de transactions. À la fois la structure et les données des déclarations sera exécuté avant un gestionnaire de transactions est de prendre le relais. Disons que vous avez une erreur dans l'énoncé 42 256. Votre base de données est dans un état incohérent maintenant.
- Amha, tu perds de la transparence et de contrôle: lorsqu'un scriptella script ou liquibase changement ou habituellement engagé avec les changements dans les modèles de domaine, vous faites un changement dans le modèle de domaine et de l'espoir (en gros) que hibernate va savoir quoi faire. (Il n'a pas, mais c'est une autre histoire.)
- Pour l'intégration, de système et de test d'acceptation vous simplement supposer que votre test de bases de données sont dans le absolument, exactement le même état que votre base de données de production. Vous devez garder une trace de ce que manuellement (Bonne chance et amusez-vous! ;) ). Dans le cas où vous faites une erreur, juste un petit slip est suffisante, les résultats peuvent être très nous allons être catastrophique.
Personnellement, j'utilise liquibase pour la base de données de gestion du changement et ont développé le processus suivant afin de réduire les travaux d'entretien:
-
Créer un changelog depuis la ligne de commande de ma dernière sortie de la structure
- Créer un "changelog" de ma dernière base de données
-
Manuellement diff les deux journaux du changement (généralement les changements ne sont pas énormes, et si elles le sont, généralement, ils répondent à l'un des défauts de liquibases diff de commande.
- créer un ensemble de modifications
Même pour des changements complexes dans lequel on doit mettre en œuvre un customChange, cela peut être réalisé en quelques heures, y compris la définition de restaurations, les tests et la documentation. Pour des modifications insignifiantes, c'est une question de minutes. En gros: vous avez à faire un peu plus de travail (j'ai créé personnalisé les ensembles de modifications pour les 4 configurations de base de données en moins d'une journée), mais vous obtenez la tranquillité d'esprit que vous avez fait tout votre possible pour garder la base de données dans un état cohérent.