Probleme mit der Datenbank unter Forgejo

Nach der Erstellung eines Pull Requests unter Forgejo ergab sich ein Datenbank-Fehler bzw. ein 500er-Reponse mit folgender Meldung:

GetIssuesByIDs, converting driver.Value type time.Time to a int64: unsupported value time.Time as int64

Ein Grund für das Problem könnte die Migrationen von Gogs zu Gitea zu Forgejo im Laufe der Jahre darstellen. Gelöst werden konnte das Problem durch eine Neuerstellung der Tabellen:

./forgejo doctor recreate-table --config custom/conf/app.ini

Anschließend funktionierte die Forgejo-Installation wieder ohne Probleme.

Unicode-Tabelle im Web

Unicode besteht mittlerweile aus über 137.000 Zeichen. Während ASCII mit seinen 128 Zeichen noch übersichtlich daherkam, ist dies bei Unicode etwas komplexer. Abhilfe schafft hier das Webprojekt der Unicode-Zeichentabelle. In dieser Tabelle lassen sich Unicode-Zeichen betrachten, kopieren und einzeln aufrufen. In der Einzelansicht werden verschiedene technische Angaben zu dem jeweiligen Zeichen dargestellt.

Die Unicode-Tabelle stellt die Unicode-Zeichen übersichtlich da

Zu finden ist das Projekt unter unicode-table.com. Die Seite steht in unterschiedlichen Sprachen, unter anderem Russisch, Englisch, Polnisch und Deutsch zur Verfügung. Die Daten, welche vom Projekt genutzt werden, sind auf GitHub zu finden.

Tabelle mittels phpMyAdmin umbenennen

Manche Dinge sollten einfach sein und sind es auch – wenn man weiß an welcher Stelle man suchen muss. In diese Kategorie fiel bei mir das Umbenennen von Tabellen mittels phpMyAdmin.

Der Operationen-Tab unter phpMyAdmin

Der Operationen-Tab unter phpMyAdmin

Um eine Tabelle umzubenennen muss diese im ersten Schritt in der Baumansicht auf der linken Seite ausgewählt werden. In der Datenansicht auf der rechten Seite findet man anschließend unter anderem den Tab Operationen. Eine der Optionen welche in diesem Tab unter Tabellenoptionen zu finden ist das Umbenennen von Tabellen.

HTML Tabelle in CSV

Manchmal ist es ganz praktisch wenn man aus einer HTML Tabelle eine CSV erstellen kann. Dazu gibt es unter http://www.codekeep.net/snippets/ec9f4704-b88a-486a-98f9-896de6afb021.aspx auch ein schönes Beispiel. Das Problem an diesem Beispiel ist das es nicht funktioniert. Einige Elemente sehen nach jQuery aus, so das man es ohne diese Bibliothek nicht benutzen kann. Mit „normalem“ Javaskript sieht das ganze dann so aus:

function tableRowsToCSV(theRows) 
{
 // Converts table rows into a csv stream
 var csv = "";
 for (var r=0;r<theRows.length;r++) {
 var csvRow = "";

 var theCells = theRows.item(r).cells;
 for (var c=0;c<theCells.length;c++) {
 var cellData="";
 cellData = theCells.item(c).textContent;
 //alert(cellData);
 if (cellData.indexOf(",") != -1) { 
 cellData = "'"+cellData+"'"; 
 }
 csvRow += ","+cellData;
 }
 if (csvRow != "") { 
 csvRow = csvRow.substring(1,csvRow.length); 
 }
 csv += csvRow+"\n";
 }
 return csv;
}

Der Aufruf der Funktion könnte dann zum Beispiel so aussehen:

var csvText = tableRowsToCSV(document.getElementsByTagName("tr"));

Diesen Text kann man dann in Javaskript weiterverwenden oder ihn z.B. an ein PHP Skript (per POST) schicken, welches das ganze dann zum Download anbietet.