Posts: 10
Threads: 2
Joined: Sep 2009
Reputation:
4
(This post was last modified: 13.12.2009, 10:36 by InsertNameHere.)
12.12.2009, 22:34
... als SQL-Backup.
Einer genaueren Erklärung bedarf es da eigentlich nicht, aber ich gebe mal eine:
Dieses Tool speichert je nach Auswahl die Datenbanken mit den Spielerdaten, die Spielerdaten und die Dörfer Tables, oder alle Tables.
Die Sql-files werden in den ordner [DsLan]\htdocs\admin\rounds\[Dateiname].sql gespeichert.
Der name der Runde ist frei wählbar, doch unerlaubte zeichen werden ersetzt (hoffe ich)
Screenshot
Ein komplett-Reset (bots mitresetten) kommt dann wohl auch noch, aber nicht jetzt ;D
Version 0.9
Download
Version 0.2
Download
Version 0.1
Download
[Anmerkungen]
Dieses Tool funktioniert nur, wenn die Datenbank von DsLan 'lan' heißt.
Anleitung zum individualisieren:
Quote:1. Öffne [DsLan]\htdocs\admin\actions\save.php mit einem Editor (mit Zeilenangabe wäre gut)
2. Ändere in Zeile 89
PHP Code: $query = $db -> query('SHOW TABLES FROM lan');
in
PHP Code: $query = $db -> query('SHOW TABLES FROM Dein_Datenbank_Name');
Fertig
Posts: 358
Threads: 13
Joined: Feb 2009
Reputation:
7
(This post was last modified: 12.12.2009, 22:49 by B8shT1m3.)
12.12.2009, 22:49
Hört sich gut an, werds nachher auch mal ausprobieren^^
Dann kann man endlich mal rcihtig "Speichern"
Lg
B8shT1m3 aka A-m-O
______________________________________________
Bewerte mich bitte wenn ich dir geholfen hab.
PS: Bin Vollidiot des Monats, ich darf das!
Posts: 3'459
Threads: 57
Joined: Apr 2009
Reputation:
115
Ähm, kann man die Runden dann wieder laden?
Manchmal denke ich:
Posts: 10
Threads: 2
Joined: Sep 2009
Reputation:
4
Klar:
du kannst dann nen Reset machen und im phpmyadmin die Datei importieren
Posts: 976
Threads: 18
Joined: Jul 2008
Reputation:
34
(This post was last modified: 12.12.2009, 23:23 by Jonsn.)
12.12.2009, 23:19
(12.12.2009, 23:16)InsertNameHere Wrote: Klar:
du kannst dann nen Reset machen und im phpmyadmin die Datei importieren
Wär schön wenn du das auch noch beim Tool machen könntest,
das man irgendwie über einen Pfad die Datei dann angibt,
und so dann die automatisch hochgeladen wird.
Noch was, das Tool ist ja eigentlich das gleiche wie das Tool von ink oder ?
Nur ist deins etwas schöner zu bedienen wenn ich das mal sagen darf..
DSLan Szenarien
Du suchst ein Tool? Dann sieh doch mal in meine Toolsammlung!
Posts: 3'459
Threads: 57
Joined: Apr 2009
Reputation:
115
(12.12.2009, 23:16)InsertNameHere Wrote: Klar:
du kannst dann nen Reset machen und im phpmyadmin die Datei importieren
Wäre besser, wenn das Tool so ausgearbeitet wird, dass man das nicht importieren muss, sondern das Automatisch geht
Manchmal denke ich:
Posts: 10
Threads: 2
Joined: Sep 2009
Reputation:
4
(This post was last modified: 13.12.2009, 10:50 by InsertNameHere.)
13.12.2009, 10:18
Das mit dem importieren hab ich soweit (musste einen kleinen Parser zusammenbasteln, der die SQL auf die INSERT befehle und dann noch einen, der daraus die Tabellennamen holt und überprüft, ob die auch leer sind).
Noch ein paar kleine Tests und dann habt ihrs ^^
/E: Geupdated
Viel spaß damit ^^
Anleitung zur Benutzung:
Quote:0. Ihr erstellt ein Backup der aktuell laufenden Runde, wenn ihr keines habt.
0.1. Wenn ihr ein Anderes Backup "einspielen" wollt, erstellt ihr eine Sicherung der aktuellen runde
1. Ihr führt einen Reset durch
2. Ihr gebt unter Dateiimport den Namen der SQL ohne ordner und endung ein (Beispiel: die Datei ist rounds/round1.sql, dann lautet die Eingabe: round1)
3. Auf "hochladen" klicken.
3.5. -> Error: "Tabelle `xxxxx` ist nicht leer, Backup gescheitert"
3.6. -> Tabelle manuell leeren und Fehler posten.
3.7. -> Schritt 2 und 3 Nochmal durchführen
3.8. -> Bei erneutem Fehler wieder Schritt 3.5-3.8 druchführen
4. Fertig
(12.12.2009, 23:19)Jonsn Wrote: (12.12.2009, 23:16)InsertNameHere Wrote: Klar:
du kannst dann nen Reset machen und im phpmyadmin die Datei importieren
Wär schön wenn du das auch noch beim Tool machen könntest,
das man irgendwie über einen Pfad die Datei dann angibt,
und so dann die automatisch hochgeladen wird.
Noch was, das Tool ist ja eigentlich das gleiche wie das Tool von ink oder ?
Nur ist deins etwas schöner zu bedienen wenn ich das mal sagen darf..
DSLan Szenarien Nur, dass es ein paar andere moden gibt, die man benutzen kann.
Und dass es sich hier nicht um Bot configs handelt, sondern um Sicherungsbackups der Datenbank, womit es ja eigentlich möglich wäre, für Lans runden ohne großen aufwand vorzubereiten und auf einem Anderen pc wieder zu "installieren".
Dieses Tool sollte aber auch für frühere Versionen als 1.3 funktionieren.
Posts: 976
Threads: 18
Joined: Jul 2008
Reputation:
34
(This post was last modified: 13.12.2009, 13:32 by Jonsn.)
13.12.2009, 13:16
(12.12.2009, 23:16)InsertNameHere Wrote: Nur, dass es ein paar andere moden gibt, die man benutzen kann.
Und dass es sich hier nicht um Bot configs handelt, sondern um Sicherungsbackups der Datenbank, womit es ja eigentlich möglich wäre, für Lans runden ohne großen aufwand vorzubereiten und auf einem Anderen pc wieder zu "installieren".
Dieses Tool sollte aber auch für frühere Versionen als 1.3 funktionieren.
Naja, bei dem Tool von ink wird ja auch die DB gespeichert, bei dir kann man halt auswählen was genau gespeichert werden soll..
Aber nur so.. Im Prinzip ist es das gleiche!
Aber benutz jetzt sowieso das, echt schönes Tool.
Finde dich echt super, kannst sehr gut proggen!
So jetzt hab ich gleich mal eine Frage...
Ich habe nun diese Fehlermeldung, als ich das Backup einspielen wollte:
Die Tabelle `abot_attack` ist nicht leer! Backup gescheitert!
InsertNameHere Wrote:3.6. -> Tabelle manuell leeren und Fehler posten.
Kannst du diesen Punkt genauer erklären, wo soll ich die Tabelle denn leren in der DB?
Wie geht das??
Du suchst ein Tool? Dann sieh doch mal in meine Toolsammlung!
Posts: 3'164
Threads: 47
Joined: Dec 2008
Reputation:
205
Dass es mit anderen DB-Name funzt, kannst du ja einfach den Configeintrag hinschreiben:
PHP Code: $query = $db -> query('SHOW TABLES FROM ' . $config['mysql']['db']);
MfG Manuel
Posts: 3'459
Threads: 57
Joined: Apr 2009
Reputation:
115
Das ist der aBot, bei dem die Tabelle nach dem Reset nicht automatisch geleert wird.
Leere die Tabelle per phpmyadmin und starte aBot nichtmehr
Dann ist die Tabelle leer und du kannst das Backup einspielen.
Manchmal denke ich:
Posts: 10
Threads: 2
Joined: Sep 2009
Reputation:
4
Jonsn Wrote:So jetzt hab ich gleich mal eine Frage...
Ich habe nun diese Fehlermeldung, als ich das Backup einspielen wollte:
Die Tabelle `abot_attack` ist nicht leer! Backup gescheitert! Du hast ein backup der ganzen datenbank erstellt.
Beim einspielen des Backups, bzw davor wird geprüft, ob die Tabelle wirklich leer ist, um einen Mysql Error und doppelte einträge vorzubeugen.
Es wird also nur was eingetragen, wenn die Tabelle abot leer ist, hat mit mysql zu tun:
Ein PRIMARY KEY darf immer nur einen Wert haben (bei DsLan ist es immer die id).
Wenn man jetzt versucht, die id 1 einzutragen und diese id gibt es schon ist das ein Fehler und der Query schlägt fehl.
SlimShady95 Wrote:Dass es mit anderen DB-Name funzt, kannst du ja einfach den Configeintrag hinschreiben:
PHP Code: $query = $db -> query('SHOW TABLES FROM ' . $config['mysql']['db']);
MfG Manuel ... gibt keinen Error sonder nur leeren TExt, toll, ne ^^
$config['db_name'] müsste es sein.
Werd ich ma ändern
Posts: 3'164
Threads: 47
Joined: Dec 2008
Reputation:
205
(13.12.2009, 14:14)InsertNameHere Wrote: SlimShady95 Wrote:Dass es mit anderen DB-Name funzt, kannst du ja einfach den Configeintrag hinschreiben:
PHP Code: $query = $db -> query('SHOW TABLES FROM ' . $config['mysql']['db']);
MfG Manuel ... gibt keinen Error sonder nur leeren TExt, toll, ne ^^
$config['db_name'] müsste es sein.
Werd ich ma ändern
Ich meinte ja $config['db_name'], hab mich nur verschrieben
Denn ich schreibe bei meinen Scripten immer $config['mysql']['db']
MfG Manuel
Posts: 1'107
Threads: 37
Joined: May 2008
Reputation:
47
Noch eine Anmerkung: Du sperrst deine Backup-Datei wärend dem Schreibvorgang nicht, wenn also jemand zufällig doppelt auf "Backup" klickt kann es zu fehlern kommen. Das gleiche gillt für den Import: Verhindern, dass zwei Importscripts gleichzeitig arbeiten.
|