Quam vitare te in pede figens Liquibase utens

Numquam ante factum est, atque hic iterum imus!

In proximo incepto, Liquibase ab initio uti decrevimus ad vitanda problemata in futuro. Cum evenit, non omnes sodales iuvenum membra recte uti sciunt. Internam habui officinam, quam in articulum vertere decrevi.

Articulus includit apicibus utiles et descriptionem trium notissimorum fovearum quas incidere potes in operando cum instrumentis migrationis datorum relationum, praesertim Liquibase. Iava tincidunt ad Iuniorem et Mediam constitutum est, nam tincidunt peritiores potest interesse ad construendas et repetendas id quod maxime iam notum est.

Quam vitare te in pede figens Liquibase utens

Liquibase et Volaviae principales sunt technologiae certandi ad solvendas difficultates versionis potestates structurarum relationum in mundo Javae. Primus est omnino liber, in usu frequentius ad usum destinatus, quam ob causam Liquibase tamquam heros publici iuris factus est. Sed quaedam exercitia descriptorum possunt esse universalia, secundum applicationem architecturae.

Migrationes structurarum relationum in via coacta sunt ad flexibilitatem infirmam tractandi notitiarum relationum relationum. In more temporis OOP laborandi modus cum databases significabat nos schema semel describere et iterum non tangere. Sed veritas semper est quod res mutantur, et mutationes ad structuram tabulae saepius requiruntur. Naturaliter processus ipse molestus et ingratus esse potest.

Nolo profunde in descriptione technologiae et instructionum ad augendam bibliothecam consilio tuo, satis pauca de hoc argumento scripta sunt:

Praeterea in argumento apicibus utilissimis iam erat excellens articulus;

tips

Consilium et commentarium meum communicare cupio, qui per sudorem, sanguinem et dolorem in problematum migrationum nati sunt.

1. Priusquam opus incipias, consuescere te debes cum optimis exercitiorum sectione website Liquibase

ibi simplicia sed magni ponderis describuntur, sine quibus utens bibliotheca vitam tuam inpedire potest. Exempli causa, accessus informis ad mutationes procurandas citius aut serius confusionem et migrationes fractas ducet. Si non evolvantur mutuo dependentes mutationes ad structuram et ministerium datorum logicae simul, magna est probabilitas quod hoc inducet ad probationes rubras vel ambitus fractos. Praeterea commendationes pro Liquibase in in rutrum rutrum utentes clausulam continent de evolutione et experimento scriptorum reverti scriptorum cum principali scriptorum migratione. Bene, in articulo https://habr.com/ru/post/178665/ Exempla sunt codicis de migrationibus et mechanismo reverti.

2. Si migrationis instrumenta uti incipis, correctiones manuales in structura datorum non permittunt

Ut aiunt, "Semel Persil, semper Persil." Si basis applicationis tuae a Liquibase tractari incipit, quaelibet manualis mutationes statim ad statum inconstans ducunt et gradus fidei in mutationibus nulla fit. Potentia pericula includunt aliquot horas peractas datorum restituendorum, in gravissimo casu missionis, servo mortuo. Si "scholam veterem" DBA Architectum in turma tua habes, patienter et cogitabundus excipe ei quomodo mala erunt si simpliciter dat database secundum suum intellectum ab Developer conditionali SQL.

3. Si schedae iam in promptuario eiectae sunt, devita emendo

Si alius elit trahere et schedulam applicari fecit, quae postea edenda erit, certissime meminerit te per speciem verbi cum errorem in applicatione incipiendo acceperit. Si mutationes in evolutionem aliquo modo effluere edere, lubricum clivum hotfixes sequi debebis. Essentia quaestionis in convalidatione mutationum summae Nullam - principale mechanismum Liquibase nititur. Cum edendo in commutationeset codice, detrahe quantum mutatur. Mutationes emendare solum fieri potest, cum totum datorum de integro enucleare potest sine notitia amittenda. In hoc casu, codicem SQL vel XML restituens, e contra vitam faciliorem reddere et migrationes faciliorem reddere potest. Exemplum condicio esset ubi, initio applicationis, schema fontis datorum intra equos convenerat.

4. verificatur database tergum si fieri potest

Hic, opinor, omnia plana sunt. Si subito migratio succedit, omnia reverti possunt. Liquibase instrumentum ad mutationes revolutionis habet, sed scripta reverti scripta etiam ab ipso electronica scripta sunt, et problemata eadem probabilitate habere possunt cum scriptorum mutationes principalis. Id quod utile est in aliquo casu tergum tutum agere.

5. Usus database tergum in progressionem probatum, si fieri potest

Si hoc pacto contractus et secretum non repugnet, nulla notitia personalis datorum in datorum, nec tantum duos soles aestimat - antequam ea utantur in servientibus migrationum viventium, inspicias quomodo operabitur in machina elit et computare. fere 100% potential problems per migrationem.

6. Communicare cum aliis developers in quadrigis

In processu evolutionis bene ordinato, quisque in quadrigis novit quid faciat. Reapse, hoc saepe non contingit, si mutationes ad structuram datorum ut partem operis tui paras, censebit insuper totam de hac turma certiorem facere. Si quis in parallelis mutationibus mutat, diligenter ordinare debeas. Communicando cum collegis labore finito non solum in principio valet. Multae quaestiones potentiales cum schedularum mutationibus in codice scaenae recensionis resolvi possunt.

7. Cogita quid agas!

Ad secundum sic proceditur. Multae tamen difficultates evitare potuissent si elit iterum quid ageret et quid afficere posset enucleavit. Cum migrationibus operandis semper attentionem ac diligentiam additional requirit.

insidias lacrimis

Videamus nunc insidias typicas quas incidere potes, si superius consilium non sequeris, et quidnam facias?

Situ 1: duae developers addere novas mutationes simul conantur

Quam vitare te in pede figens Liquibase utens
Vasya et Petya versionem mutare volunt 4, sine cognitione de se invicem. Mutationes in structuram datorum fecerunt et petitionem emiserunt cum aliis fasciculis variantibus. Mechanismus sequentis actionis proponitur:

Quam solvere

  1. Nescio quo pacto, collegae consentire debent ordine quo eorum mutationes eant, verbi causa, Petin primum adhibenda est.
  2. Aliquis alterum sibi addere debet et mutationes Vasya notare cum versione 5. Hoc fieri potest per Cerasum delige vel concinne merge.
  3. Post mutationes, validitatem actuum acceptorum certo inspicias.
    Re vera, machinae Liquibase permittent te habere duas emendationes 4 mutationes in repositorio, sic potes omnia relinquere ut est. Hoc est, simpliciter duas mutationes in versione 4 cum nominibus diversorum habebis. Hoc accessu difficillimum postea fit versiones datorum navigare.

Praeterea Liquibase, sicut domus hobbitum, multa arcana servat. Una earum est clavis validCheckSum, quod in versione 1.7 apparuit, et dat tibi validum Nullam valorem specificae pro mutationibus specificae, pro eo quod in datorum repositum est. Documentation https://www.liquibase.org/documentation/changeset.html haec dicit:

Adde checksum quod validum censetur pro hac mutationeSet, id quod in datorum repositum est. Praesertim cum debes mutare mutationemSet et non vis errores in databases iniectos in quibus iam currunt (non est ratio commendata)

Ita est, hoc modo non commendatur. Sed interdum magus fortis lucem artes quoque obscuras dominatur

Situ II: Donec adipiscing quod ex notitia pendent

Quam vitare te in pede figens Liquibase utens

Sumamus te non habere facultatem datorum tergum utendi ex servientibus viventibus. Petya mutatorium creavit, localiter temptavit et, cum fidenter se rectum esse dixit, rogationem e elit viverra fecit. Modo in casu, consilium plumbum declaravit an Petya repressisset, et deinde addidisset. Sed in elit eget elit.

Nam id efficitur est, ac aliquam purus. Hoc fit, si modificationes structurae in mensa certae notitiae e datorum aliquo modo colligantur. Patet, si Petya database solum cum notitia testium impletur, tunc omnes casus difficultates tegere non potest. Exempli gratia, cum tabulam delendo evenit ut in aliis tabulis in Key Aliena sint monumenta quae in tabulario deleta referuntur. Vel cum genus columnae mutans, evenit ut non 100 notitiarum ad novum genus converti possit.

Quam solvere

  • Scripta specialia scribe quae semel cum migrationibus adhibebuntur et notitias in propriam formam adduces. Communiter haec est quaestio solvendi problema transferendi notitias ad novas structuras applicandis migrationibus, sed aliquid simile ante in casibus specialibus applicari potest. Haec via, utique, non semper in promptu est, quia notitias de vivis ministrantibus edere potest esse periculosus et etiam perniciosus.
  • Alia via difficilis est emendare existentem mutationes. Difficultas est quod omnes database, ubi iam in forma sua existente, restitui debebunt. Fieri potest ut tota tergora manipulorum cogetur ad locum datorum de integro evolvendum.
  • Et universalissima via est problema transferre cum notitia ambitus elit, eundem recreare et novas mutationes addere, fracto, quod problema circumveniet.
    Quam vitare te in pede figens Liquibase utens

In genere, quo plus datorum simile est in compositione cum servo datorum productioni, eo minus facultas problematum migrationum longe erit. Et quidem, antequam ad repositorium mittis, pluries cogites an aliquid frangat.

Situs 3. Liquibase uti incipit postquam in productionem intrat

Pone turmam plumbeam petivit Petya ut Liquibase includat in project, sed consilium iam in productione est et structura database exsistens.

Itaque problema est quod in quibusvis novis ministris vel machinis elaborandis, hae tabulae a scabere recreandae sunt, et ambitus exsistentes in statu constanti manere debent, parati ad novas mutationes accipiendas.

Quam solvere

Plures etiam sunt modi;

  • Primum et manifestissimum est scripturam separatam habere, quae manualiter applicari debet cum novam rerum condicionem initialem.
  • Secunda minus manifesta est, Migrationem Liquibasem habere, quae in alio Contextu Liquibase est, et applica. Plura de Contextu Liquibasi hic legere potes: https://www.liquibase.org/documentation/contexts.html. In genere, haec est mechanismus interesting quae feliciter adhiberi potest, exempli gratia, ad probationem.
  • Tertium iter pluribus gradibus consistit. Primum, migratio pro tabulis existentibus creari debet. Tunc ad aliquem ambitum applicandum erit et sic eius summa summa obtinebitur. Proximus gradus est tabulas Liquibasi vacuas initializare in servitore nostro non-vacuo, et in mensa cum historia usuum permutationum, de "quasi applicata" mutationeset mutationes in datorum iam exsistentibus manually notare potes. . Ita, exsistente servo, historia countdown incipiet a versione 2, et omnes novi ambitus idem faciunt.
    Quam vitare te in pede figens Liquibase utens

Situ 4. Migrationes ingentes facti non habent tempus ad perficiendum

In initio officii progressui, ut regula, Liquibase dependentia externa adhibetur, omnesque migrationes cum applicatione incipit esse discursum. Sed tempus in his casibus offendas;

  • Migrationes immanes fiunt et longum tempus conficere.
  • Migratio opus est in ambitibus distributis, exempli gratia, in pluribus instantiis servo datorum simul.
    In hoc casu, applicando migrationes ad longum tempus, in applicatione incipit, proveniet. Accedit, applicando migrationes ad singulas instantiae applicationes separatim, ut in diversis servientibus extra synthesim inveniatur.

Quam solvere

In talibus, consilium tuum iam magnum est, fortasse etiam adultum, et Liquibase instrumentum externum separatum agere incipit. Re vera est Liquibase ut bibliotheca in dolium fasciculum compilata et ut dependentia operari potest intra consilium vel independenter.

In modo standi, exsecutionem migrationum tuarum CI/CD environment vel ad umeros validos administratorum systematis tui et specialitas instruere potes. Hoc facere debes Liquibase lineam mandatum https://www.liquibase.org/documentation/command_line.html. Hoc modo fieri potest ut applicatio deducatur omnibus necessariis migrationibus peractis.

conclusio,

Re vera, multae scandala possunt esse cum migrationibus datorum operantibus, et multae ex eis creantis accessus requirunt. Praestat ut intelligatur si recte instrumento uteris, pleraeque istarum fovearum vitari possunt. Speciatim habui de omnibus quaestionibus in diversis formis recensitis, et quaedam ex illis erant ex erroribus meis. Plerumque hoc accidit, scilicet propter incuriam, sed interdum propter impotentiam criminalem utendi instrumentum.

Source: www.habr.com