Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Met vertakkingen in Lakebase kunt u uw gegevensomgeving veilig versieren, testen en ontwikkelen, vergelijkbaar met het vertakken van uw code in Git. U kunt direct geïsoleerde, volledig functionele vertakkingen maken voor ontwikkeling, experimenten of schemawijzigingen testen, zonder dat dit van invloed is op productieworkloads.
Lakebase maakt standaard één production vertakking wanneer u een nieuw project maakt. Dit is uw standaardbranch, bedoeld om de productiegegevens van uw toepassing op te slaan.
U kunt indien nodig extra vertakkingen maken om aan uw werkstroom te voldoen. Voeg bijvoorbeeld een development vertakking toe voor het bouwen en testen, een staging vertakking voor preproductietests of maak vertakkingen per ontwikkelaar voor volledige isolatie. Elke branch opereert onafhankelijk, dus veranderingen in een child beïnvloeden nooit de parent. Met een branch reset kunt u elke subvertakking vernieuwen vanuit de bovenliggende vertakking om het meest recente schema en de meest recente gegevens te verkrijgen, zonder datadump- of teardownscripts.
Hoe takken werken
Ouder-kindrelaties
Elke vertakking (behalve de wortelvertakking) heeft een bovenliggende vertakking. Hiermee maakt u een hiërarchie:
production (root branch)
├── staging (child of production)
│ └── feature-test (child of staging)
└── development (child of production)
└── bugfix-branch (child of development)
Deze hiërarchie biedt belangrijke isolatie: wijzigingen die u aanbrengt in een onderliggende vertakking hebben geen invloed op het bovenliggende element en wijzigingen in een bovenliggende vertakking worden niet automatisch weergegeven in onderliggende items. Deze isolatie strekt zich ook uit tot de status van Postgres-rollen en databases: rollen en databases die zijn aangemaakt, GRANTs en REVOKEs die zijn toegepast, en rolattributen die op één branch zijn aangepast, hebben geen effect op andere branches. Wanneer u bijgewerkte gegevens van de bovenliggende tak nodig hebt, kunt u de kindtak resetten. U kunt ook vertakkingen maken vanaf elk punt in de bovenliggende geschiedenis, wat handig is voor herstel op een specifiek moment, testen op basis van historische gegevens of nalevingsscenario's.
Wanneer u een vertakking maakt, kiest u of u deze wilt initialiseren op basis van huidige gegevens of vanaf een bepaald tijdstip. Zie Een vertakking maken voor stapsgewijze instructies en details over elke optie.
Copy-on-write-opslag
Lakebase maakt gebruik van copy-on-write-technologie om ouder- en kindvertakkingen efficiënt te maken. Wanneer u een nieuwe vertakking maakt, neemt deze zowel het schema als de gegevens over van de bovenliggende vertakking, maar deelt de onderliggende opslag via aanwijzers naar dezelfde gegevens. Alleen wanneer u gegevens wijzigt, schrijft Lakebase nieuwe gegevens. Dit betekent:
- Uw vertakkingen worden direct weergegeven; de grootte van uw database heeft geen invloed op de aanmaaktijd van de vertakking
- Het maken van vertakkingen heeft geen invloed op de prestaties van uw productieworkload
Copy-on-write bepaalt hoe branchs worden opgeslagen, maar hoe een branch wordt gefactureerd hangt af van of deze verloopt. Bekijk Hoe vertakking het gebruik van middelen beïnvloedt.
production branch child branch (at creation)
┌─────────────────┐ ┌─────────────────┐
│ [Data A] │◄──────│ → Data A │ (shared)
│ [Data B] │◄──────│ → Data B │ (shared)
│ [Data C] │◄──────│ → Data C │ (shared)
└─────────────────┘ └─────────────────┘
After modifying data in child branch:
┌─────────────────┐ ┌─────────────────┐
│ [Data A] │◄──────│ → Data A │ (shared)
│ [Data B] │ │ [Data B'] │ (changed)
│ [Data C] │◄──────│ → Data C │ (shared)
└─────────────────┘ └─────────────────┘
Only changed data is stored separately
Werken met branches
Vertakking opnieuw instellen
Bij het opnieuw instellen van een vertakking wordt een kindvertakking onmiddellijk bijgewerkt om overeen te komen met de huidige staat van de bovenliggende vertakking. Dit is handig als u uw ontwikkelings- of faseringsvertakking wilt vernieuwen met de meest recente gegevens van de bovenliggende vertakking. De bewerking wordt direct voltooid met behulp van copy-on-write-technologie en uw verbindingsgegevens blijven hetzelfde.
Het opnieuw instellen van een vertakking werkt alleen in één richting (bovenliggend → onderliggend item). Als u wijzigingen van onderliggende naar bovenliggende structuur wilt verplaatsen, gebruikt u uw standaard migratietools om schemawijzigingen toe te passen. Zie Een vertakking opnieuw instellen voor gedetailleerde stappen en scenario's.
Herstel naar een bepaald tijdstip
U kunt een vertakking maken vanaf een bepaald tijdstip in uw herstelvenster. Dit is handig voor het herstellen van gegevensfouten, zoals onbedoelde verwijderingen, het onderzoeken van eerdere problemen of het openen van historische gegevens voor controle- en nalevingsdoeleinden. Als een kritieke tabel bijvoorbeeld gisteren om 10:23 uur is verwijderd, kunt u een vertakking maken die is ingesteld op 10:22 uur om de ontbrekende gegevens te extraheren. Op dezelfde manier kunt u branches aanmaken die de status van uw database op specifieke datums weergeven voor financiële afstemming, regelgevingscontroles of forensische analyses. In tegenstelling tot het resetten van een vertakking (waarmee een bestaande vertakking direct wordt bijgewerkt), creëert herstel naar een bepaald tijdstip een nieuwe hoofdvertakking op basis van historische gegevens, terwijl de originele vertakking ongewijzigd en operationeel blijft. Zie Herstel naar een bepaald tijdstip voor meer informatie.
Speciale vertakkingstypen
Standaardtak
Elk Lakebase-project wordt gemaakt met een standaardbranch met de naam production, maar u kunt elke vertakking als standaard aanwijzen. De standaardbranch is vrijgesteld van de gelijktijdig actieve rekenlimiet, zodat deze altijd beschikbaar blijft.
Beveiligde vertakkingen
Beveiligde vertakkingen hebben beveiligingen om onbedoelde wijzigingen te voorkomen. Ze kunnen niet worden verwijderd of opnieuw worden ingesteld van hun ouder en ze zijn vrijgesteld van automatische archivering door inactiviteit. Beveiligde vertakkingen blokkeren ook het verwijderen van projecten terwijl ze bestaan, zodat u de kritieke infrastructuur niet per ongeluk kunt verwijderen. Daarnaast geeft Lakebase prioriteit aan gegevens voor beveiligde vertakkingen in de opslagcache, waarbij de prestaties van beveiligde vertakkingen boven andere vertakkingen prioriteit krijgen. Elk project ondersteunt één beveiligde vertakking. Gebruik beveiligde takken voor kritieke gegevens, zoals productie. Zie Beschermde branches voor meer informatie.
Hoe vertakking van invloed is op resourceverbruik
Bij branches betaal je apart voor compute en opslag.
Compute: Elke vertakking heeft een eigen rekenkracht die u onafhankelijk kunt schalen. U betaalt alleen voor actieve rekenuren. Berekeningen worden geschaald naar nul wanneer deze niet actief zijn. Dit betekent dat een ontwikkelbranch die u af en toe gebruikt, veel minder kost dan het continu draaien van een dedicated ontwikkelingsserver.
Opslag: Hoe een branch wordt gefactureerd voor opslag hangt af van of deze een vervaldatum heeft:
- Een verlopende branch wordt alleen gefactureerd voor de gegevens die erop veranderen. Via copy-on-write deelt het de ongewijzigde gegevens van zijn bovenliggende proces. Als je bijvoorbeeld 1GB aan data op een aflopende branch van een 100GB-database aanpast, betaal je voor ongeveer 1GB aan opslag, niet voor een volledige kopie van 100GB.
- Een permanente branch, zonder vervaldatum, wordt gefactureerd voor zijn volledige datagrootte, als een onafhankelijke database, zelfs wanneer de data slechts licht verschilt van de ouder.
Warning
Een branch permanent maken betekent dat je betaalt voor de volledige datagrootte, niet alleen voor de data die erop verandert. Een branch zo instellen dat deze nooit verloopt, is altijd een bewuste keuze: je selecteert Never voor Auto-delete wanneer je de branch aanmaakt, of je verwijdert de vervaldatum van een bestaande branch. Als je alleen een kortstondige kopie nodig hebt, stel dan een vervaldatum in zodat de branch alleen wordt gefactureerd voor wat erop verandert. Zie Vervaldatum van branch.
Vertakkingsstrategieën
Hier volgen enkele veelvoorkomende manieren waarop teams hun branches organiseren:
Eenvoudig (personen en kleine teams)
Gebruik uw standaardbranch met één ontwikkelingsbranch:
production
└── development
Uw development-branch is waar u veilig nieuwe features bouwt. U kunt schemawijzigingen aanbrengen, testgegevens toevoegen en experimenteren zonder risico voor uw productiebranch. Wanneer u klaar bent, voert u de geteste schemamigraties uit op production (met behulp van uw migratieprogramma) en reset u development om de volgende functionaliteit te starten met verse gegevens.
Met fasering
Voeg een faseringsvertakking toe voor preproductietests:
production
├── staging
└── development
Als u preproductietests nodig hebt, onderhoudt u een staging vertakking die uw productievertakkingsgegevens spiegelt. Implementeer uw toepassing daar, voer integratie- en prestatietests uit op realistische gegevens en krijg vertrouwen voordat u live gaat. Stel de testgegevens periodiek opnieuw stagingproduction in om uw testgegevens te vernieuwen.
Vertakkingen per ontwikkelaar
Elke ontwikkelaar werkt in volledige isolatie:
production
└── development
├── dev-alice
├── dev-bob
└── dev-charlie
Dit patroon voorkomt dat ontwikkelaars elkaars werk verstoren en iedereen in staat stelt om schemawijzigingen onafhankelijk te testen. Elke ontwikkelaar kan experimenteren met hun eigen schemawijzigingen en gegevenswijzigingen zonder dat dit van invloed is op anderen, en vervolgens geteste migraties toepassen op de gedeelde development of production vertakking wanneer ze klaar zijn.
Note
De staging - en per-ontwikkelaarpatronen gebruiken langlevende takken. Een branch zonder vervaldatum wordt gefactureerd voor zijn volledige datagrootte. Bekijk hoe branching het gebruik van middelen beïnvloedt.
Aanvullende informatiebronnen
- Vertakkingen beheren voor meer informatie over het maken, opnieuw instellen en verwijderen van vertakkingen
- Gebeveiligde branches om kritieke takken te beschermen