Druhá část zápisků z cesty pěšky. Více zde.
Smazání všech lokálních Git větví
Příkaz git branch
zobrazí seznam všech lokálních větví.
Příkaz git branch -r
zobrazí seznam všech remote (vzdálených) větví
Příkaz git brach -d nazev_vetve
smaže uvedenou lokální větev (pokud již byla mergnutá)
Příkaz git branch -D nazev_vetve
smaže uvedenou lokální větev (bez ohledu na její merge status, je to zkratka pro --delete --force
)
Smazání všech větví s výjimkou větve s názvem dev
se provede příkazem
git branch | grep -v "dev" | xargs git branch -d
Anotace javax.persistence.SequenceGenerator
Anotace @SequenceGenerator
se používá k určení generátoru primárních klíčů pro tabulku. Na tento generátor je odkazováno z anotace @GeneratedValue
.
name – Název generátoru, který musí být unikátní.
sequenceName – Název sekvence v databázi. Je to sekvence, která již v databázi existuje.
allocationSize – Musí být stejná jako hodnota „auto incerement“ sekvence v databázi.
import cz.vitfo.entity.CustomerEntity.Companion.GENERATOR_NAME import cz.vitfo.entity.CustomerEntity.Companion.SEQUENCE_NAME import cz.vitfo.entity.CustomerEntity.Companion.TABLE_NAME import javax.persistence.Entity import javax.persistence.GeneratedValue import javax.persistence.GenerationType import javax.persistence.Id import javax.persistence.SequenceGenerator import javax.persistence.Table @Entity @Table(name = TABLE_NAME) @SequenceGenerator(name = GENERATOR_NAME, sequenceName = SEQUENCE_NAME, allocationSize = 1) class CustomerEntity( @Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = GENERATOR_NAME) var id: Long ) { companion object { const val TABLE_NAME = "t_customer" const val SEQUENCE_NAME = "${TABLE_NAME}_id_seq" const val GENERATOR_NAME = "${SEQUENCE_NAME}_gen" } }
Root oprávnění v docker kontejneru
Docker nabízí příkaz exec
, který spustí zadaný příkaz v běžícím kontejneru. Pokud tedy máme kontejner s názvem postgres, který obsahuje PostgreSQL databázi, pak příkazem docker exec -it postgres psql -U postgres
spustíme v kontejneru postgres příkaz psql s paramatrem -U (uživatelské jméno) postgres. Tím se přihlásíme k databázi běžící v kontejneru.
Někdy můžeme chtít v kontejneru vykonávat nějakou činnost (např. vytvářet složky), k čemuž ale občas potřebujeme root oprávnění. Takto se vytvoříme složku realms
v kontejneru s názvem keycloak
. Do kontejneru se přihlásíme jako root: docker exec -u 0 keycloak bash -c "mkdir realms"
MongoDB shell
Shell pro MongoDB se nazývá mongosh
. Dříve se používala shell mongo
, která byla odstraněna ve verzi MongoDB 6.0. Pokud se pokusíte zavolat mongo
a dostanete chybu bash: mongo: command not found
, mongo shell již na vašem systému není k dispozici. Pokud máte běžíci docker kontejner mongo, dovnitř kontejneru se dostanete pomocí docker exec -it mongo bash
. K databázi se pak připojíte příkazem mongosh -u username -p password
. Zobrazí se vám verze mongosh i mongo databáze.
Using MongoDB: 6.0.2 Using Mongosh: 1.6.0 For mongosh info see: https://docs.mongodb.com/mongodb-shell/
Shell můžete ukončit několika způsoby:
Napište .exit
, exit
, nebo exit()
.
Napište quit
nebo quit()
.
Stiskněte Ctrl + D
.
Stiskněte dvakrát Ctrl + C
.
Mongo quickstart
Mongo databáze ukládá záznamy jako dokumenty (documents), což je obdoba záznamů (řádků) v klasické SQL databázi. Dokumenty jsou v tak zvaných kolekcích (collections), což je obdoba tabulek v klasické SQL databázi. Databáze tedy obsahuje jednu nebo více kolekcí, které obsahují dokumenty. Sloupec (column) v SQL databázi zhruba odpovídá poli (field) v Mongu. Velmi hezky zpracované porovnání příkazů a názvosloví mezi Mongem a SQL je zde.
Odstranění všech kontejnerů a image v dockeru
Zastavení všech kontejnerů
docker stop $(docker ps -aq)
Odstranění všech kontejnerů
docker rm $(docker ps -aq)
Odstranění všech image
docker rmi $(docker images -q)
Zdroj
geeksforgeeks.org/remove-all-containers-and-images-in-docker/
Rozbrazení řádků před a po nalezeném výsledku v grep
Grep zobrazí řádek, na kterém najde zadaný výsledek. Pokud potřebujete i okolí výsledku, použijte přepínače -B
(before -> pře) a -A
(after -> za).
ls -al | grep -A 3 -B 1 slovo
grep -A 2 -B 2 slovo soubor.txt
Spuštění bashe v docker kontejneru
Docker nabízí příkaz exec, který spustí zadaný příkaz v běžícím kontejneru. V tomto příspěvku jsem si vytvořil kontejner s databází PostgreSQL a k databázi jsem se připojil z lokálního počítače pomocí nástroje psql. Pokud chci v tomto kontejneru spustit bash v pseudoterminálu, použiji tento příkaz:
docker exec -it my-postgres bash
-i, --interactive
: interaktivní vstup
-t, --tty
: spustí pseudo terminál
Zdroj: stackoverflow.com/…/how-do-i-get-into-a-docker-containers-shell