Migraties voor Java

Ik gebruik zowel ruby ​​on rails als Java. Ik vind het erg leuk om migraties te gebruiken als ik aan een railsproject werk. dus ik vraag me af is er een migratie-achtige tool voor Java? Als zo’n tool niet bestaat, is het dan een goed idee om migraties te gebruiken als een tool om een ​​database te beheren die door een Java-project wordt gebruikt?


Antwoord 1, autoriteit 100%

Voor een functievergelijkingtussen

  • Vliegbaan
  • Liquibase
  • c5-db-migratie
  • dbdeploy
  • mijnbatis
  • MIGRATEdb
  • migrate4j
  • dbmaintain
  • AutoPatch

kijk eens op http://flywaydb.org

Dit zou een goed begin moeten zijn voor u en iedereen om het juiste gereedschap voor de klus te selecteren


Antwoord 2, autoriteit 15%

Liquibaseis een ander project in dit domein dat het bekijken waard is.


Antwoord 3, autoriteit 11%

Grailsheeft een dbmigrate-hulpprogramma dat is gemodelleerd naar dat van Rails. Omdat het is geïmplementeerd in Groovy, zou je het vanuit elk van je Java-projecten moeten kunnen gebruiken.


Antwoord 4, autoriteit 10%

Ik heb Hibernate’s SchemaUpdate gebruikt om dezelfde functie uit te voeren als migraties. Het is eigenlijk gemakkelijker dan migraties, want elke keer dat u uw app opstart, onderzoekt het de databasestructuur en synchroniseert het met uw toewijzingen, dus er is geen extra rake:db:migrate-stap en uw app kan nooit niet synchroon lopen met de database die wordt uitgevoerd tegen. Hibernate-toewijzingsbestanden zijn niet complexer dan Rails-migraties, dus zelfs als u Hibernate niet in de app hebt gebruikt, kunt u er uw voordeel mee doen. Het nadeel is dat het niet zo flexibel is als het terugdraaien, migreren en uitvoeren van DML-instructies. Zoals aangegeven in de opmerkingen, laat het ook geen tabellen of kolommen vallen. Ik voer een aparte methode uit om deze handmatig te doen als onderdeel van het Hibernate-initialisatieproces.

Ik zie echter niet in waarom je Rails-migraties niet zou kunnen gebruiken – zolang je het niet erg vindt om de stapel (Ruby, Rake, Rails) te installeren, hoef je je app niet aan te raken.


Antwoord 5, autoriteit 7%

Ik kwam dit bericht tegen tijdens het onderzoeken van dezelfde vraag. Ik heb nog geen conclusies getrokken over de beste tool of aanpak, maar een tool die ik ben tegengekomen en die tot nu toe niet in andere antwoorden is genoemd, is dbdeploy. Ik zou graag vergelijkingen van deze tools willen lezen.

Enkele andere relevante bronnen: Martin Fowler en Pramod Sadalage’s ietwat verouderde bericht over Evolutionary Database Design, en het boek Refactoring Databases: Evolutionary Database Designdoor Sadalage en Scot Ambler.


Antwoord 6, autoriteit 7%

Er zijn ook twee onafhankelijke implementaties van rails-achtige migraties voor Java:

1) Maven-gebaseerde migraties van Carbon Five

2) Op mieren gebaseerde taken van Hashrocket(mijn persoonlijke favoriet)

Hoewel deze pakketten speciaal voor Maven en Ant zijn geschreven, kun je ze met wat werk aan bijna alles aanpassen.


Antwoord 7, autoriteit 5%

Migrate4jlijkt een kandidaat, maar het project lijkt niet volwassen genoeg voor productiegebruik.


Antwoord 8, autoriteit 2%

Er is ook dbmainain die aanvankelijk is ontwikkeld in Unitils maar is nu een toegewijd project. We gebruiken het momenteel en zijn zeer tevreden (wat betekent niet dat er geen goede alternatieven zijn). Ik vermeld meer van hen in mijn Database + migratie bladwijzers (met een focus op gereedschap ondersteunend Maven ).

Other episodes