Puncte:0

Scriptul Bash de recunoaștere a versiunii de descărcare PostgresSQL

drapel de

Recreez adesea diverse baze de date de clienți pe dockeri locali pentru a testa noi funcționalități ERP în mediul de dezvoltare Deci, fișierul dump PostgreSQL începe de obicei cu:

--
-- Dump de bază de date PostgreSQL
--

-- descărcat din versiunea 13.3 a bazei de date (Ubuntu 13.3-1.pgdg20.04+1)
-- Dumping de pg_dump versiunea 13.3 (Debian 13.3-1.pgdg100+1)
...

De aceea, scriptul meu bash „restorefromdump.sh” (creând docker temporar versiunea adecvată a serverului postgresql pentru gestionarea fișierelor de descărcare) incepe cu:

#!/bin/bash
DBDUMP=$1
DUMPFROM=$(grep "^-- Dumped.*din " "$DBDUMP")
DUMPVERSION_inclSpaces=$(grep -o '^-- Dumping din.*(' "$DBDUMP" | grep -o -E '[0-9*.]+[^versiune]')
DUMPVERSION="$(echo -e "${DUMPVERSION_inclSpaces}" | tr -d '[:space:]')"
REMOTEPGVER=postgres:$DUMPVERSION
# apelează funcția „buildtmpdocker” pentru a construi docker temporar postgres 
buildtmpdocker $REMOTEPGVER 
...

După comanda directă „./restorefromdump.sh *.dmp” Pare să funcționeze eficient - recunoaște corect versiunea de descărcare, dar poate că există modalități mai bune? Sunteți obișnuit să recunoașteți versiunea din fișierul dump cu scriptul Bash?

muru avatar
drapel us
Ce ar trebui să facă expresia regex `[0-9*.]+[^version]` conform dvs.?
Andrzej Więcławski avatar
drapel de
găsește numere înainte de șirul „versiune” - exemplu: | $ nano testfile | conținut: „asw123version” | după salvarea „fișierului de test” | $ grep -o -E „[0-9*.]+[^versiune]” fișier de testare | rezultat: '123'
Andrzej Więcławski avatar
drapel de
gaseste DOAR numere :)
muru avatar
drapel us
Nu știu cum ai venit cu asta, dar nu, asta nu este ceea ce face regex. Caută una sau mai multe apariții de cifre, `*` sau `.` urmate de orice altceva decât literele `e`, `i`, `n`, `o`, `r`, `s`, `v `.
Andrzej Więcławski avatar
drapel de
Deci, concluzia este... Ce părere aveți? Este greșit modul meu de a obține ținta: numărul versiunii PostgreSQL, inclusiv punctele?

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.