Für diejenigen, die durch den von mir geschaffenen Redmine-Thread dazukommen : Ich habe auch versucht, die Lösung dort zu posten, aber der SPAM-Filter ließ mich den Thread nicht verfolgen. Dies liegt wahrscheinlich daran, dass es keine Zwischenantwort (* Träne *) gab.
Es hat ein bisschen gedauert, aber ich habe es herausgefunden. (Ich habe eine Testinstanz von Redmine erstellt, um nichts mit unserer Produktionsinstanz zu verwechseln. Diese Werte sind also Standardwerte und sollten für jeden geeignet sein, der dies versucht.)
Eine kurze Zusammenfassung des Prozesses:
- Suchen Sie nach der internen ID des Projekts, zu dem Sie die Dateien hinzufügen möchten.
- Ermitteln Sie die Dateistatistik.
- Datei in die Datenbank einfügen
Es findet tatsächlich keine Datenbankvalidierung statt, also ist sogar (2) optional. Deshalb werde ich nicht darauf eingehen, wie ich diese Informationen bekomme. (Auch auf dieser Website gibt es reichlich Ressourcen, um diese Informationen zu erhalten.) Der Rest erfordert jedoch ein kleines bisschen Wissen darüber, wie die Datenbanken von Redmine eingerichtet sind.
Um dies zu starten, stellen Sie eine Verbindung zu Ihrer MySQL-Datenbank her. (Dies ist normalerweise, wenn nicht immer, möglich redmine_production
. Sie können alle MySQL-Datenbanken mit dem Befehl auflisten SHOW DATABASES;
.)
Suchen Sie nun die ID Ihres Projekts, zu der Sie die Datei hinzufügen möchten. In der Spaltenliste oben wird dies als eingefügt container_id
.
mysql> SELECT * FROM projects; +----+----------------+-------------+----------+-----------+-----------+---------------------+---------------------+----------------+--------+------+------+ | id | name | description | homepage | is_public | parent_id | created_on | updated_on | identifier | status | lft | rgt | +----+----------------+-------------+----------+-----------+-----------+---------------------+---------------------+----------------+--------+------+------+ | 1 | git-helloworld | NULL | | 1 | NULL | 2012-01-01 13:00:00 | 2012-01-01 13:00:00 | git-helloworld | 1 | 1 | 2 | | 2 | bzr-helloworld | NULL | | 1 | NULL | 2012-01-01 13:00:00 | 2012-01-01 13:00:00 | bzr-helloworld | 1 | 1 | 2 | | 3 | hg-helloworld | NULL | | 1 | NULL | 2012-01-01 13:00:00 | 2012-01-01 13:00:00 | hg-helloworld | 1 | 1 | 2 | | 4 | svn-helloworld | NULL | | 1 | NULL | 2012-01-01 13:00:00 | 2012-01-01 13:00:00 | svn-helloworld | 1 | 1 | 2 | +----+----------------+-------------+----------+-----------+-----------+---------------------+---------------------+----------------+--------+------+------+ 4 rows in set (0.00 sec)
In diesem Beispiel möchten wir die Dateien hinzufügen git-helloworld
, also unsere ID 1
. Um eine Datei zur Datenbank hinzuzufügen, führen wir den SQL-Befehl aus:
INSERT INTO attachments (container_id, container_type, filename, disk_filename, digest) VALUES ( 1, 'Project', 'Some File Name', 'file-name-on-disk', '0123456789abcdef');
Ein paar Anmerkungen zu diesen Bereichen:
container_id
: Die ID des Projekts, in das Sie die Datei einfügen möchtencontainer_type
: Die Art des Behälters, der dies ist; zu diesem Zweck ist es immerProject
filename
: Die Zeichenfolge, die als Dateiname angezeigt werden solldisk_filename
: Der tatsächliche Pfad der Datei relativ zu/var/www/redmine/files/
digest
: Eine Zeichenfolge, die die MD5-Prüfsumme der Datei darstellt.
Einige nicht erforderliche, aber empfohlene Felder:
filesize
: Die Größe der Datei als ganze Zahl. Ich gehe davon aus, dass dies in Bytes oder Kilobytes sein soll, aber ich weiß nicht, ob es wichtig ist.author_id
: Ein Benutzer, dem die Datei zugeordnet werden soll. Für meine Zwecke werde ich verwendenadmin
. Beachten Sie, dass Sie mit eine vollständige Liste der Redmine-Benutzer erhalten könnenSELECT * FROM users;
.description
: Eine Dateibeschreibung. (Dies ist dieselbe optionale Beschreibung, die in der Schnittstelle verwendet wird.)content_type
Ich würde davon ausgehen, dass dies ein MIME-Inhaltstyp ist.created_on
: Das Datum, an dem diese Datei erstellt wurde.
Informationen zu den expliziten Typen finden Sie in der Spaltenliste des ursprünglichen Beitrags.
Stellen Sie anschließend sicher, dass der Pfad disk_filename
relativ zu Ihrem redmine/files/
Verzeichnis tatsächlich vorhanden ist . (Hinweis : Dies bedeutet, dass Sie es tatsächlich organisieren!) Sie nicht haben dies zu tun, aber Sie werden offensichtlich ein 404 erhalten, wenn die Datei nicht vorhanden ist.
Danach solltest du gut sein!