Rails-Befehle
Zammad verwendet Ruby on Rails, so dass Sie die Rails Konsole nutzen können.
WARNING
Bitte überprüfen Sie Ihre Befehle vor der Ausführung, da einige dieser Befehle zu Datenverlusten oder beschädigten Tickets führen können! Wenn Sie sich unsicher sind, testen Sie es zuerst auf einem Testsystem!
Starting Zammad's rails console
Execute a single command
INFO
Ersetzen Sie {COMMAND} durch den Befehl, den Sie ausführen möchten.
TIP
Wenn Sie ein p vor Ihrem Befehl voranstellen (z.B. rails r 'p Delayed::Job.count'), erhalten Sie eine Ausgabe im Terminal (ohne sehen Sie nichts!).
sh
docker compose run --rm zammad-railsserver bundle exec rails r '{BEFEHL}'Run interactive rails console
sh
docker compose run --rm zammad-railsserver bundle exec rails cRails console safe mode
Normalerweise müssen für den Start der Rails-Konsole bestimmte Dienste von Drittanbietern verfügbar sein. Sie erhalten möglicherweise Fehlermeldungen und die Konsole verweigert den Start, wenn sie nicht verfügbar sind.
Es ist jedoch möglich, die Rails-Konsole im sicheren Modus zu starten, indem man eine spezielle Umgebungsvariable setzt. Wenn ZAMMAD_SAFE_MODE=1 gesetzt ist, wird die Prüfung auf Vorhandensein ignoriert.
sh
ZAMMAD_SAFE_MODE=1 zammad run rails cTicket commands
Get the RAW email
Mit dem folgenden Befehl können Sie empfangene EML-Dateien, die Zammad abgerufen hat, überprüfen. Dies ist nützlich, wenn Sie E-Mails beim Abholen löschen und die EML-Datei selbst überprüfen müssen.
Um die EML-Datei des ersten Artikels zu erhalten, können Sie den folgenden Befehl verwenden. In unserem Beispiel handelt es sich um das Ticket mit der Nummer 101234.
ruby
Ticket.find_by(number:'101234').articles.first.as_raw.contentBei Bedarf können Sie auch den Raw-Inhalt späterer Artikel abrufen (Sie müssen allerdings den richtigen Artikel finden). Auch hier ist unsere Ticket-Nummer 101234.
Im ersten Schritt erhalten wir alle Artikel IDs des Tickets:
ruby
Ticket.find_by(number:'101234').article_idsAusgabe:
[4, 3, 2]Aus der Liste, die wir erhalten, können wir dann den Inhalt des Artikels abrufen:
ruby
Ticket::Article.find(3).as_raw.contentINFO
Wenn Sie nur Ticket::Article.find(3) verwenden, können Sie weitere Informationen sehen (z.B. wer die Mail geschickt hat, wann sie abgerufen wurde, ...).
Update all tickets of a specific customer
WARNING
Bitte beachten Sie, dass diese Aktion ressourcenintensiv sein kann. Wenn Sie viele Tickets haben, kann dies Zammad verlangsamen.
ruby
Ticket.where(customer_id: 4).update_all(customer_id: 1)Get ticket state types
Hier werden alle Statustypen angezeigt, die für die Erstellung eines neuen Ticket-Status benötigt werden:
ruby
Ticket::StateType.pluck(:id, :name)Oben werden sowohl die ID des Typs als auch der Name zurückgegeben - z.B.:
`[[1, "neu"], [2, "offen"], ...`.User commands
Find user
Um Benutzerinformationen zu bearbeiten oder nach bestimmten Informationen zu suchen, müssen Sie den Benutzer zunächst finden.
ID des Benutzers ist bereits bekannt:
ruby
User.find(4)Suche nach dem Benutzer über seine E-Mail-Adresse:
ruby
User.find_by(email: 'your@email')Suche nach dem Benutzer anhand seines Logins:
ruby
User.find_by(login: 'john.doe')Unlock a locked user account
TIP
Das Entsperren eines gesperrten Benutzerkontos wird auch von Zammads UI unterstützt!
Es kann vorkommen, dass ein Benutzer sich selbst aussperrt, indem er mehrmals das falsche Passwort versucht. Abhängig von der festgelegten maximalen Anzahl an fehlgeschlagenen Anmeldeversuchen (Standard: 10x), kann Zammad das Konto sperren.
Der Benutzer kann sich nicht mehr anmelden, wenn er das Passwort nicht ändert oder Sie den Zähler zurücksetzen.
ruby
u=User.find(**USERID**)ruby
u.login_failed=0ruby
u.save!Sie können auch überprüfen, ob das Konto gesperrt ist, indem Sie den folgenden Befehl ausführen (das Ergebnis muss um 1 höher sein als Ihr Limit, also 11 bei der Standardeinstellung von 10 fehlgeschlagenen Anmeldungen):
ruby
User.find(**USERID**).login_failedChange / update email address of user
Bei Bedarf können Sie die E-Mail-Adresse des Benutzers ändern.
INFO
Bitte beachten Sie, dass das login Attribut hiervon nicht betroffen ist und Zammad daher möglicherweise andere Informationen in der Benutzeroberfläche anzeigt.
ruby
u = User.find(**USERID**)ruby
u.email = 'user@exmaple.com'ruby
u.save!Dazu müssen Sie zunächst die ID des Benutzers ermitteln.
Change / update login name of user
Ändern Sie den Benutzernamen des Benutzers (z.B. wenn Sie sich mit einem kürzeren Benutzernamen anstelle einer Mailadresse anmelden möchten)
ruby
u = User.find(**USERID**)ruby
u.login = 'user@exmaple.com'ruby
u.save!Dazu müssen Sie zunächst die ID des Benutzers ermitteln.
Set admin rights for user
Sie haben keinen Zugriff mehr auf Zammad? Gewähren Sie sich selbst oder einem anderen Benutzer administrative Rechte.
ruby
u = User.find_by(email: 'you@example.com')ruby
u.roles = Role.where(name: ['Agent', 'Admin'])ruby
u.save!Set password for user
Sie oder der Benutzer haben Ihr Passwort vergessen? Kein Problem! Setzen Sie es bei Bedarf einfach von Hand zurück.
ruby
User.find_by(email: 'you@example.com').update!(password: 'your_new_password')Remove password for user
Wenn Sie nach dem Start eine zweite Authentifizierungsmethode (z.B. LDAP) hinzugefügt haben, kann in der Benutzerverwaltung von Zammad immer noch ein Passwort vorhanden sein. In solchen Fällen können sich Benutzer mit ihrem (lokalen) Zammad-Passwort zusätzlich zu den Zugangsdaten anmelden, die beim externen Authentifizierungsanbieter gespeichert sind. Entfernen Sie einfach das von Zammad gespeicherte Passwort.
ruby
User.find_by(email: 'you@example.com').update!(password: nil)Group commands
Find a group
ruby
Group.find_by(name: 'Users').follow_up_possibleChat commands
Remove IP address logs
Verwenden Sie den folgenden Befehl, um alle IP-Adresseinträge aus beendeten Chats zu entfernen, die in den letzten sieben Tagen nicht aktualisiert wurden:
ruby
Chat::Session.where(state: 'closed').where('updated_at < ?', 7.days.ago).each do |session|
next if session.preferences['remote_ip'].blank?ruby
session.preferences.delete('geo_ip')ruby
session.preferences.delete('remote_ip')ruby
session.save!(touch: false)
endZammad settings
In diesem Abschnitt finden Sie einige Einstellungen, die Sie auch in der Zammad-Benutzeroberfläche vornehmen können.
Auto shutdown setting
Legt fest, ob ein automatisches Herunterfahren von Zammad durchgeführt wird, wenn die Datenbank geändert wurde (z.B. nachdem benutzerdefinierte Attribute im Objektmanager erstellt wurden). Das zugrundeliegende System (Systemd, Docker, Kubernetes) wird dann die Prozesse/Container nach dem Herunterfahren neu starten. Die Standardeinstellung ist true.
Die Einstellung false macht nur in sehr seltenen Fällen Sinn und Sie müssen die Zammad Dienste dann manuell neu starten.
ruby
Setting.set('auto_shutdown', 'true')Ticket_hook setting
Damit erhalten Sie den Ticket-Hook, den Sie in dem [] vor der Ticket-Nummer finden. Standardmäßig ist dies Ticket# - in einem produktiven System sollten Sie diese Einstellung nicht ändern.
ruby
Setting.get('ticket_hook')FQDN setting
Ermitteln Sie die aktuelle FQDN-Einstellung von Zammad und passen Sie sie bei Bedarf an.
INFO
Diese Einstellung hat keine Auswirkungen auf SSL-Zertifikate oder Webserver Konfigurationen.
Aktuellen FQDN abrufen:
ruby
Setting.get('fqdn')Legen Sie einen neuen FQDN fest:
ruby
Setting.set('fqdn', 'new.domain.tld')HTTP(s) setting
Diese Einstellung gehört indirekt zu Ihrer FQDN-Einstellung und ist relevant für variablenbasierte URLs (z.B. in Benachrichtigungen), die Zammad generiert.
WARNING
Diese Einstellung wirkt sich auch auf das CSRF-Token-Verhalten von Zammad aus. Wenn Sie z.B. auf HTTPs setzen, Sie aber HTTP verwenden, wird die Anmeldung fehlschlagen!
Die Einstellung hat keinen Einfluss auf SSL-Zertifikate oder die Konfiguration des Webservers.
Abrufen des aktuellen http-Typs:
ruby
Setting.get('http_type')Ändern Sie den http-Typ in HTTPs:
ruby
Setting.set('http_type', 'https')Storage provider setting
Die Einstellung des Storage Providers ist bei Standardinstallationen auf DB eingestellt. Falls viele Anhänge erhalten oder eine stark ausgelastete Installation haben, ist die Verwendung der Datenbank zum Speichern von Anhängen nicht die empfohlene Lösung.
Abrufen der aktuellen Speichermethode für Anhänge:
ruby
Setting.get('storage_provider')Ändern der Speicherung von Anhängen in der Datenbank
ruby
Setting.set('storage_provider', 'DB')Wenn Sie bereits Dateien gespeichert haben und diese verschieben möchten, können Sie das folgende Beispiel verwenden. Bitte beachten Sie, dass dieser Vorgang nur in nicht produktiven Umgebungen ausgeführt werden sollte. Falls Sie ihn in Produktionsumgebungen durchführen müssen, sollten Sie eine Verzögerung für die Ausführung angeben - andernfalls kann Ihr Zammad nicht erreichbar sein.
Verschieben von Dateien von DB nach Dateisystem mit einer bestimmten Verzögerung nach jeder Datei in Sekunden:
ruby
Store::File.move('DB', 'File', delay_in_sec)Die folgenden Einstellungen sind bei einer Standardinstallation verfügbar:
DB(Datenbank)File(Dateisystem (/opt/zammad/storage/))
Elasticsearch konfigurieren
Wenn sich Ihre Elasticsearch-Installation ändert, können Sie die folgenden Befehle verwenden, um sicherzustellen, dass Zammad weiterhin auf Elasticsearch zugreifen kann.
Ändern Sie die URL von Elasticsearch:
ruby
Setting.set('es_url', 'http://127.0.0.1:9200')Ändern Sie den Benutzer von Elasticsearch (z.B. für die Authentifizierung):
ruby
Setting.set('es_user', 'elasticsearch')Ändern Sie das Elasticsearch-Passwort für die Authentifizierung:
ruby
Setting.set('es_password', 'zammad')Ändern Sie den Indexnamen:
ruby
Setting.set('es_index', Socket.gethostname + '_zammad')Ignorieren Sie Dateien für die Indizierung nach Dateityp:
ruby
Setting.set('es_attachment_ignore', %w[.png .jpg .jpeg .mpeg .mpg .mov .bin .exe .box .mbox])Begrenzen Sie die Größe der Anhänge:
ruby
Setting.set('es_attachment_max_size_in_mb', 50)Schalten Sie die SSL-Verifizierung ein oder aus:
ruby
Setting.set('es_ssl_verify', 'false')Enable proxy
Legen Sie einen von Zammad zu verwendenden Proxy fest:
ruby
Setting.set('proxy', 'proxy.example.com:3128')ruby
Setting.set('proxy_username', 'some user')ruby
Setting.set('proxy_password', 'some pass')Asciifold deaktivieren
Diese Funktion ist standardmäßig aktiviert. Falls Sie eine genauere Suche benötigen, können Sie sie ausschalten:
ruby
Setting.set('es_asciifolding', false)Nachdem Sie die Einstellung geändert haben, stellen Sie sicher, dass Sie den Suchindex neu aufbauen.
Hidden settings
In diesem Abschnitt finden Sie einige Einstellungen, die Sie nicht in der Zammad-Benutzeroberfläche finden. Diese Einstellungen könnten nützlich sein, da sie das Verhalten von Zammad verändern können.
Send all outgoing emails to a BCC-mailbox
Mit dieser Option können Sie alle ausgehenden E-Mails (keine Benachrichtigungen) an ein bestimmtes Postfach senden. Bitte beachten Sie, dass es sich dabei nicht um ein Postfach handeln sollte, das Sie bereits importieren! Dies gilt für alle Gruppen und ist eine globale Einstellung.
ruby
Setting.set('system_bcc', 'alias@domain.tld')Sie können die aktuelle BCC-Einstellung überprüfen, indem Sie folgendes ausführen:
ruby
Setting.get('system_bcc')Activate counter on grouped overviews
Dies ermöglicht einen Ticket-Zähler in jeder Kopfzeile bei gruppierten Elemente.
Aktivieren Sie den Zähler für gruppierte Übersichten:
ruby
Setting.set('ui_table_group_by_show_count', true)Zähler für gruppierte Übersichten deaktivieren:
ruby
Setting.set('ui_table_group_by_show_count', false)Aktuelle Einstellung abrufen (nil ist false):
ruby
Setting.get('ui_table_group_by_show_count')Default ticket type on creation
Zammad erlaubt Ihnen, den Standard-Artikeltyp bei der Erstellung eines Tickets zu definieren. Standardmäßig ist dies ein eingehender Telefonanruf.
Sie können wählen zwischen
phone-in(eingehender Anruf, Standard),phone-out(ausgehender Anruf) undemail-out(ausgehende E-Mail).
ruby
Setting.set('ui_ticket_create_default_type', 'email-out')Um die aktuelle Einstellung abzurufen, führen Sie den folgenden Befehl aus:
ruby
Setting.get('ui_ticket_create_default_type')Show a note during article creation
Wenn Sie Ihren Agenten bei der Artikelerstellung eine Notiz mit wichtigen Informationen anzeigen lassen wollen, können Sie eine solche statische Notiz für verschiedene Artikeltypen erstellen. Beachten Sie, dass es zwei Einstellungen gibt: eine für die Ticketerstellung und die andere für die Artikelerstellung in einem bestehenden Ticket. Passen Sie die Befehle unten an, um sie für die gewünschten Artikeltypen zu verwenden, und ersetzen Sie den Text durch Ihren eigenen. Falls Sie nicht für alle Artikeltypen eine Notiz wünschen, lassen Sie diese Typen einfach weg.

Ticket creation
ruby
Setting.set('ui_ticket_create_notes', {
: "phone-in" => "Sie sind im Begriff, einen eingehenden Anruf zu notieren.",
: "phone-out" => "Sie sind im Begriff, einen ausgehenden Anruf zu notieren.",
: "email-out" => "Sie sind im Begriff, eine E-Mail zu versenden."
})New article in existing tickets
ruby
Setting.set('ui_ticket_add_article_hint', {
: "note-internal" => "Sie schreiben eine |interne Notiz|, die nur Personen aus Ihrer Organisation sehen können.",
: "note-public" => "Sie schreiben eine |öffentliche Notiz|.",
: "phone-internal" => "Sie schreiben eine |interne Telefonnotiz|, die nur Personen aus Ihrer Organisation sehen können.",
: "phone-public" => "Sie schreiben eine |öffentliche Telefonnotiz|.",
: "email-intern" => "Sie schreiben eine |interne E-Mail|, die nur Personen Ihrer Organisation sehen können.",
: "email-public" => "Sie schreiben eine |öffentliche E-Mail|."
})Check current configuration
ruby
Setting.get('ui_ticket_create_notes')ruby
Setting.get('ui_ticket_add_article_hint')Markup options
Um eine Textformatierung anzuwenden, verwenden Sie die folgende Auszeichnung:
||kursiv|||fett|_unterstrichen_//durchgestrichen//§taste§(wird als Taste gerendert wie taste)¶(neue Zeile)[Link Text](/example.com)
Show email address of customer on customer selection (ticket creation)
Standardmäßig zeigt Zammad die E-Mail-Adressen der Kunden nicht an. Mit der folgenden Option können Sie dieses Verhalten ändern.
ruby
Setting.set('ui_user_organization_selector_with_email', true)Abfrage des aktuellen Status dieser Einstellung mit:
ruby
Setting.get('ui_user_organization_selector_with_email')Change font settings for outgoing HTML emails
INFO
Einige Clients (wie Outlook) greifen möglicherweise auf andere Einstellungen zurück, während es bei anderen funktioniert.
Mit der folgenden Einstellung können Sie die E-Mail-Schriftart von Zammad anpassen. Diese Einstellung erfordert keinen Neustart des Dienstes.
ruby
Setting.set("html_email_css_font", "font-family:'Helvetica Neue', Helvetica, Arial, Geneva, sans-serif; font-size: 12px;")Abfrage des aktuellen Status dieser Einstellung mit:
ruby
Setting.get('html_email_css_font')Highlight customer's open ticket count
Mit dieser Option wird die Anzahl der offenen Tickets des ausgewählten Kunden erhöht. Sie hebt die Anzahl in verschiedenen Farben hervor, wenn ein Schwellenwert erreicht wird.
ruby
Setting.set('ui_sidebar_open_ticket_indicator_colored', true)Für die obigen Einstellungen gelten die folgenden Schwellenwerte. Sie können diese Werte nicht ändern.
| Situation | keine Hervorhebung | Warnung (orange) | Gefahr (rot) |
|---|---|---|---|
| Ticket-Bearbeitung | < 2 | 2 | >= 3 |
| Ticket Neu-Erstellung | 0 | 1 | >= 2 |
Activate attachment tab in sidebar
Diese Option aktiviert einen neuen Tab in der rechten Seitenleiste der Ticketansicht, der alle Anhänge des aktuell angezeigten Tickets anzeigt.
ruby
Setting.set('ui_ticket_zoom_sidebar_article_attachments', 'true')Time period for showing customer profile on new calls
Zammad zeigt den Kundendialog an, wenn ein Anruf dieses Kunden eingeht und ein Ticket dieses Kunden in diesem Zeitraum existiert. Der Standardzeitraum ist 30 Tage. Liegt kein Ticket in diesem Zeitraum vor, wird der Kundendialog nicht automatisch angezeigt.
Setzen Sie den Zeitraum auf 90 Tage:
ruby
Setting.set('cti_customer_last_activity', '90')Set public "notes" as SLA relevant
Normalerweise sind Notizen nicht SLA-relevant. Verwenden Sie den folgenden Befehl, um öffentlich sichtbare Notizen in die Berechnung der SLA-Einhaltung einzubeziehen (interne Notizen haben nie Auswirkungen auf die SLA-Berechnungen). Beachten Sie, dass mit dieser Einstellung die Option zum Löschen öffentlicher Notizen deaktiviert wird.
INFO
Standardmäßig werden Kunden nicht benachrichtigt, wenn einem Ticket öffentliche Notizen hinzugefügt werden. Richten Sie einen Trigger ein, wenn Sie dieses Verhalten ändern möchten.
Aktivieren Sie SLA, um Notizen als Kommunikation zu zählen:
ruby
Ticket::Article::Type.find_by(name:'note').update!(communication: true)Aktivieren Sie SLA, um Notizen als Kommunikation zu ignorieren:
ruby
Ticket::Article::Type.find_by(name:'note').update!(communication: false)Activate priority icon
Um zusätzliche Symbole für die Priorität zu aktivieren, verwenden Sie den folgenden Befehl:
ruby
Setting.set('ui_ticket_priority_icons', true)Other useful commands
Remove AI feature
Die KI-Funktion von Zammad ist völlig optional und erfordert eine Konfiguration, bevor irgendeine KI-Anfrage gestellt wird. Wenn Sie die Funktion jedoch nicht sehen möchten, können Sie die Berechtigung auf inaktiv setzen.
Deaktivieren Sie jeglichen KI-Anbieter, falls bereits konfiguriert:
ruby
Setting.set('ai_provider', false)Deaktivieren Sie die Berechtigung, um die Einstellungen aus der Benutzeroberfläche auszublenden:
ruby
Permission.where("name LIKE 'admin.ai%'").update!(active: false)Um sie wieder zu aktivieren, setzen Sie das active-Flag auf true.
Fetch emails
Mit dem folgenden Befehl wird ein manueller Abruf der E-Mail-Kanäle durchgeführt. Dabei werden auch Fehler angezeigt, die bei diesem Vorgang auftreten können.
ruby
Channel.fetchReprocess failed emails
Wenn Zammad eine E-Mail abruft, die es nicht analysieren kann (z.B. aufgrund eines Parserfehlers oder einer fehlerhaften Nachricht), speichert es die E-Mail in der Datenbank und warnt im Überwachungsbereich darüber.
Im Falle einer fehlerhaften Nachricht (z.B. eine ungültige E-Mail-Adresse in einem der Header-Felder) müssen Sie die E-Mail möglicherweise manuell bearbeiten, bevor Zammad sie verarbeiten kann. Führen Sie dazu die folgenden Schritte aus.
Export all failed emails to a local folder
sh
rake zammad:email_parser:failed_email:export_all`Sie können den Speicherort der exportierten E-Mails in der Ausgabe Ihrer Konsole finden. Jedes Mal, wenn Sie einen Export von fehlgeschlagenen (nicht verarbeitbaren) E-Mails durchführen, wird ein Ordner erstellt, der alle fehlgeschlagenen E-Mails zum Zeitpunkt der Ausführung enthält.
Edit the email
Die E-Mail wurde im obigen Schritt exportiert. Nun können Sie sie sich ansehen und versuchen, sie zu reparieren. Achten Sie darauf, dass der Dateiname nicht verändert wird, da der Import sonst fehlschlägt.
Import and reprocess locally modified email
Nachdem Sie die E-Mail bearbeitet haben, führen Sie sie folgendes aus:
sh
rake zammad:email_parser:failed_email:import path/to/your/email.emlDamit werden Ihre Änderungen aus der Datei in die Datenbank übernommen. Sie können auch den gesamten Ordner als Argument übergeben, so dass alle darin befindlichen .eml-Dateien importiert und erneut verarbeitet werden. Wenn die erneute Verarbeitung der E-Mail erfolgreich war, wird die Datei bzw. werden die Dateien gelöscht und der leere Ordner entfernt.
TIP
Stellen Sie sicher, dass Sie diese Befehle nur vom Zammad-Hauptverzeichnis /opt/zammad aus ausführen. Es kann Probleme geben, wenn Sie versuchen, sie aus dem erzeugten Unterordner auszuführen.
Delete unwanted emails
Unerwünschte E-Mails, z.B. Spam, können Sie nach dem Export mit dem folgenden Befehl aus der Datenbank löschen:
sh
rake zammad:email_parser:failed_email:delete path/to/your/email.emlWenn Sie stattdessen den Exportordner als Argument übergeben, werden alle enthaltenen E-Mails aus der Datenbank entfernt, ihre Dateien gelöscht und schließlich der leere Ordner entfernt.
Show and retry failed data privacy jobs
In seltenen Fällen können Zammads Datenschutzaufgaben fehlschlagen. Um diese anzuzeigen, können Sie den folgenden Rake-Befehl verwenden:
sh
rake zammad:data_privacy:failed:showUm fehlgeschlagene Datenschutzaufgaben zu wiederholen, können Sie den folgenden Befehl verwenden. Allerdings wird die Aufgabe erneut fehlschlagen, wenn die Ursache des Fehlers nicht behoben wird. Prüfen Sie daher die Protokolle auf die Ursache des Fehlers und beheben Sie diese, bevor Sie die Aufgabe erneut ausführen.
sh
rake zammad:data_privacy:failed:retryFill a test system with test data
DANGER
Führen Sie dies nicht in einer produktiven Umgebung aus! Dies kann Zammad verlangsamen und ist schwer rückgängig zu machen!
Der folgende Befehl fügt 50 Agenten, 1000 Kunden, 20 Gruppen, 40 Organisationen, 5 neue Übersichten und 100 Tickets hinzu. Sie können jederzeit 0 verwenden, um bestimmte Elemente nicht zu erstellen. Mit diesem Befehl erstellt Zammad zufällige Daten, die keinen logischen Sinn ergeben.
ruby
FillDb.load(agents: 50,customers: 1000,groups: 20,organizations: 40,overviews: 5,tickets: 100,)Deleting records
DANGER
☠️ Die hier aufgeführten Befehle führen zu nicht wiederherstellbarem Datenverlust! Nur fortfahren, wenn Sie wissen, was Sie tun und ein Backup haben!
Removing tickets (and their articles)
Löschen eines Tickets (angegeben durch die Datenbank ID):
ruby
Ticket.find(4).destroyAlle Tickets löschen:
ruby
Ticket.destroy_allBehalten Sie einige Tickets (angegeben durch die Datenbank ID); löschen Sie den Rest:
ruby
tickets_to_keep = [1, 2, 3]ruby
Ticket.where.not(id: tickets_to_keep).destroy_allRemoving users
WARNING
Kunden dürfen nicht gelöscht werden, solange sie noch Tickets im System haben.
Daher werden in den folgenden Beispielen nicht nur die angegebenen Kunden, sondern auch alle mit ihnen verbundenen Tickets gelöscht. Untenstehende Befehle löschen ohne weitere Warnungen.
TIP
Wenn Sie nicht sicher sind, was Sie tun sollen und mehr darüber erfahren möchten, was Zammad beim Entfernen von Benutzern tut, sollten Sie stattdessen die UI-Optionen von Zammad verwenden. Sie finden die Datenschutzfunktion in Zammads Verwaltungsoberfläche unter System > Datenschutz.
Das Entfernen von Benutzern ist auf 2 Arten möglich: Einzelne Benutzer und mehrere auf einmal.
Entfernen Sie einen einzelnen Benutzer:
ruby
User.find_by(email: '<email address>').destroyMehrere Benutzer entfernen:
ruby
User.where(
email: ['<email address 1>', '<email address 2>']
).destroy_allRemoving organizations
INFO
Beim Entfernen einer Organisation werden nicht die zugehörigen Kunden gelöscht.
Schritt 1: Organisationen auswählen
Nach dem Status "aktiv":
ruby
organizations = Organization.where(active: false)Nach dem Namen:
ruby
organizations = Organization.where(name: 'Acme')Bei teilweiser Übereinstimmung mit den Notizen:
ruby
organizations = Organization.where('note LIKE ?', '%foo%')Schritt 2: Vorschau der betroffenen Organisationen
ruby
puts organizations.map { |org| "ORGANIZATION #{org.name}" }.join("\n")Step 3: Proceed with deletion
ruby
organizations.each do |org|
puts %{Preparing deletion of organization "#{org.name}"...}ruby
org.members.each do |member|
puts " Removing #{member.fullname} from organization..."
member.update!(organization_id: nil)
endruby
puts " Deleting #{org.name}..."
org.destroy
endRemoving system records
Löschen aller Online-Benachrichtigungen:
ruby
OnlineNotification.destroy_allEntfernen Sie alle Einträge aus dem Aktivitätsverlauf (Dashboard):
ruby
ActivityStream.destroy_allEinträge für alle kürzlich angesehenen Objekte (Tickets, Benutzer, Organisationen) entfernen:
ruby
RecentView.destroy_allEntfernen Sie alle Historien-Informationen von Tickets, Benutzern und Organisationen (gefährlich!):
ruby
History.destroy_allReset Zammad installation
DANGER
Die folgenden Befehle sind absichtlich unvollständig, Fehlerausgaben leiten Sie durch die Schritte! Die folgenden Operationen führen zu Datenverlust und sind nur für die Entwicklung und zum Testen.
Vergessen Sie nicht, Zammad zu stoppen, bevor Sie die Datenbank löschen!
Datenbank zurücksetzen:
sh
rake zammad:db:truncateMigration der Datenbank ausführen:
sh
rake db:migrateDatenbank-Seeds einspielen:
sh
rake db:seedCache löschen und Einstellungen neu laden:
sh
rake zammad:db:rebuildTIP
Sie können auch den Befehl zammad:db:reset verwenden, um Ihre Instanz zurückzusetzen. Dieser Befehl setzt die Datenbank zurück, führt die Migrationen aus, spielt die Datenbank-Seeds ein, löscht den Cache und lädt die Einstellungen neu. Allerdings wird zwischen den einzelnen Schritten nicht nach einer Bestätigung gefragt, daher sollten Sie den Befehl mit Vorsicht verwenden.