well-crafted code

better code – more fun

Problem

Man hat ein Album in Coppermine angelegt, das es nicht mehr geben soll und dessen Fotos man gerne in ein anderes Album verschieben möchte, ohne wieder Titel usw. neu vergeben zu müssen.

Lösung

Warnung vorab: wer sich mit MySQL und der Kommandozeile nicht auskennt, sollte besser die Finger von dieser Lösung lassen!

Herausfinden, was die Album-ID des zu löschenden Albums ist und welche ID das aufnehmende Album hat. Dazu kann man das Album einfach im Browser anzeigen und sieht dann oben die ID, z.B. thumbnails.php?album=6.

Im folgenden Beispiel ist die Album-ID des zu löschenden die Nummer 12 und die Album-ID des Zielalbums die Nummer 6.

In der Shell (ssh, PuTTy, …) gibt man folgendes Kommando ein (Nummern anpassen!!):

mysql -u root -p # or instead of root use the name of your mysql-user
show databases; # select your coppermine database and switch to this db
# replace cpg14x with your database name!
use cpg14x;
show tables;
# your pictures table name is either prefixed, e.g. cpg14x_ or not
# change cpg14x_pictures to the name of your pictures table!
update cpg14x_pictures set aid=6 where aid=12;
commit;
quit;

Problem
Mit IntelliJ IDEA bzw. WebStorm / PhpStorm lassen sich node.js Programme kinderleicht debuggen. Wenn aber das eigentliche Skript nicht direkt von node aufgerufen wird, sondern dazwischen mocha oder vows hängt, dann funktionieren die Breakpoints nicht, da u.U. ein anderer Prozess gespawned wird.

Lösung
Man legt sich eine Run-Configuration an, bei der node.js _mocha startet und übergibt das eigentliche Testscript als Applikationsparameter. Wesentlich dabei ist, dass man als Script nicht mocha, sondern _mocha verwendet.