Archiv des Autors: Heiko Thurat

Postgres: Zeilen einer Tabelle als Eingabe (INSERT) für ähnliche Tabelle verwenden (mit CTE)

Tabelle 1 (table1):
Hat die Spalten id, name, language, type

Tabelle 2 (table2):
Hat die Spalten id, name, language, type_id (identisch mit Tabelle 1 „type“)

Alle Zeilen mit dem Wert „fr“ als language sollen von der ersten Tabelle in die zweite Tabelle übernommen werden – mit einem SQL.

SET search_path TO 'public';

WITH 
    addressor_types as (SELECT type as type_id, name, language FROM table1 WHERE language='fr')

INSERT INTO table2 (type_id, name, language) (SELECT type_id, name, language FROM addressor_types);

SET search_path TO … = Setzen des Namensraumes, in dem Postgres sucht (kann weggelassen werden, wenn search_path=public)

WITH … = Common Table Expression (CTE), um die zutreffenden Zeilen der ersten Tabelle zwischenzuspeichern für den INSERT. Die Reihenfolge/Namen der Spalten beim INSERT muss/müssen übereinstimmen.

INSERT … = Der Befehl zum Einfügen der zuvor zwischengespeicherten Daten.

Shell: Mit dd Volume ohne nicht zugeordneten Platz speichern

Eine SD-Karte mit nicht zugeordnetem Speicher, die 2 GB Platz beansprucht, wird auf einem 16 GB Datenträger bei Verwendung von dd mit 16 GB gespeichert.
Das mag bei der Größe der heutigen Datenträger zu verschmerzen sein, doch was passiert, wenn dieses (eigentlich 2 GB grosse) Image auf einem 8 GB Datenträger zurückgesichert werden soll? Der Platz reicht nicht aus, die Operation kann nicht durchgeführt werden! Weiterlesen

Git: Unterordner aus Github herunterladen

Github erlaubt normalerweise nur den kompletten Checkout eines Projektes, was für die Geduld des Users und die Bandbreite des Netzwerkes unbefriedigend ist. Als eines der wenigen Git-Repositories funktioniert aber ein SVN Fallback, der es erlaubt, ein beliebiges Unterverzeichnis herunterzuladen.

Dazu muss auf dem Zielrechner SVN installiert sein (sudo apt-get install subversion).

Der Befehl zum Download:

svn export  https://github.com/medianetix/demo.git/trunk/ordner1/ordner2/

An die https-URL des Repos (demo.git) wird der Ordner „trunk“ angehängt und dann der gewünschte Unterordner (hier: ordner1/ordner2).

Authentication realm: <https://github.com:443> GitHub
Username: medianetix
Password for 'medianetix': ***************

Nach Eingabe Username/Password wird dann der Download der Dateien aus dem entsprechenden Ordner/Unterordner gestartet:

A    ordner2
A    ordner2/.placeholder
A    ordner2/05-06-2018_1138.pdf
A    ordner2/06-02-2018_0547.pdf