Aide - Recherche - Membres - Calendrier
Version complète : Sauvegarde D'une Base De Donnée
La Communauté TitaXium > Service Communication > Espace Developpement
Pages : 1, 2, 3
K20
Bonjour à tous et à toutes ^^
Je viens vous présenter mon premier "vrai" script PHP ...
Ce script permet de sauvegarder une base de donnée MySQL complète ! Il est rapide est quasiment aussi performant que PhpMyAdmin (avec mes tests)

Voici les quelques fonctionnalités que je lui ai intégré qui d'après moi seront très utiles aux webmasters :

1) La fonction principal du script est de sauvegarder votre base de donnée et de placer la sauvegarde sous format .sql dans un répertoire sur votre FTP
2) Vous pouvez également décidé d'envoyer cette même sauvegarde par email !! Vous avez la possibilité de supprimer ou non la sauvegarde une fois l'email envoyé.
3) Vous pouvez télécharger directement votre sauvegarde grâce à une seconde fonction du script (aucun fichier ne sera créé sur votre FTP !)
4) Ce script gère le multilangage facilement (pour le moment français et anglais ...)
5) Et enfin, vous pouvez programmer une sauvegarde quotidienne de votre base de donnée grâce à WebCron très facilement.

Voici les avantages de mon script d'après moi ^^

Je voudrais savoir si vous connaissez des sites où poster mon script, je l'ai mis sur Comscripts et Script master (phpscript semble ne plus valider les scripts qu'on lui envie ...)

J'attends toute remarque ou commentaire pour améliorer mon script ! :woot:
C'est un projet sous licence GNU/GPL wink.gif

Et enfin, si parmis vous il y a des personnes qui sont très bon en langue (bilingue, de naissance ou bon niveau) j'aurais besoin de quelques traduction pour : de l'espagol, de l'italien et tout autre langue ! (sauf l'allemand et l'anglais wink.gif)
Donc si vous avez du temps libre ^^

Et enfin, le lien : K20save v1.1 et une page de test : ici (l'envoie par mail ne fonctionne pas au delà de 800ko, limite de free ...)

Pour info, la version 1.2 incluera la fonction suivante :
- possibilité de zipper sa sauvegarde

Et la version 2 :
- Enregistrement possible des informations nécessaires (avec les cookies)
- Formulaire pour rentrer les infos
- Nouvelles langues

Voilà ! :-D
Zorro56
Pratique ! Merci K20 wink.gif et bonne continuation !

( a fond dans les projets celui-ci en ce moment )
Xtouch
Et bien écoute, je vais tester ce script de prêt wink.gif

Je vais lui faire subir la sauvegarde de la base de donnée de mon forum (une quarantaine de mégaoctet) et on va voir si il est aussi performant que tu le dis wink.gif

Déjà, je vois une chose : il n'est pas très "visuel". C'est vrai que pour ce genre de script, c'est pas le plus important. Mais ça contribue à lui donner une image de performance, de qualité.

Et puis si il est vraiment bien, je l'ajouterais sur mon site dans la section des scripts php.
K20
Je dis performant avec mes tests, car malheureusement je n'est pas de base de donnée de plus de 2.5 Mo crying.gif (6s la génération de la sauvegarde sur une serveur de Free)

Pour le visuel je sais, c'est prévu comme indiqué dans la v2 wink.gif

Merci à vous 2 ! :woot:
Xtouch
Bon je viens de télécharger l'archive.
Premières remarques : si ton script est réellement sous GNU, il est absolument obligatoire de joindre la licence complète dans l'archive.
Renseigne toi un peu sur le sujet pour bien faire les choses dans les règles wink.gif

Ensuite dans la configuration :
Citation
// Créer la base de donnée ? //

Un peu abstrait à mon goût, particulièrement pour un script censé sauvegarder une base de donnée.

Autre chose, il serait intéressant de pouvoir choisir le répertoire où la sauvegarde va être enregistrée.

Pourquoi mettre la fonction microtime() dans le fichier de configuration ? Ca n'a rien à y faire, ça le surcharge inutilement. Il vaut mieux créer un fichier fonctions.php, pour une plus grande clareté du fichier de config.

Voilà, pour les premières remarques. Si je te dis ça, c'est bien pour que tu fasses progresser ton script en te donnant des conseils, pas pour te dire qu'il est nul wink.gif

Bon maintenant je vais faire une tentative de sauvegarde, en premier avec une petite afin d'éviter de flinguer le serveur SQL ^_^
Xtouch
Allez hop je continue.

Il faudrait pouvoir choisir lors de la sauvegarde, la base à sauvegarder. J'ai personnellement 4 bases de donnée pour mon site, c'est dommage d'avoir à chaque fois besoin de changer le fichiers de configuration.

Sinon après quelques tests, la sauvegarde m'a l'air rapide en effet.
Mais par contre laisse tomber, si je sauvegarde mes 40 Mo d'un coup, j'ai mon hébergeur qui va pas être content. :innocent:
Il faudrait donc pouvoir mettre des pauses dans le scripts, pour les grosses tables.
Regarde du côté de flush(); ou même mieux sleep();

Parce que je peux te dire que le serveur SQL te remerciera de faire des pauses de quelques secondes entre chaque centaines de requêtes.
Par contre, faut voir aussi à ce que ça marche sur Free (j'en doute :innocent: ) et que ça ne dépasse pas le max_execution_time.
Enfin, à travailler, parce que la sauvegarde de grosses bases avec ton script, je ne la sens pas du tout !

Autre chose, toute bête : dans l'archive, mets un index ou au moins un fichier dans le dossier sauvegarde. La majorité des extracteurs de fichiers n'extractent pas par défaut les dossiers vides.

Bon allez, je m'arrête là, je t'ai donné déjà pas mal d'idées, de conseils. wink.gif
K20
Ha ouai, j'ai de quoi faire ^^
Pour ce qui est de la gestion des grosses bases de données, je pense pas que ça sera pour maintenant sad.gif car j'ai pas encore le niveau pour ça ... Donc peut être dans la v3 tongue.gif

Pour le fichier config, la fonction MircroTime est à ça place, car le fichier config ne servira que pour les fonctions dans la v2 wink.gif

Pour : // Créer la base de donnée ? // heu je me rapelle plus du contexte je vais regarder smile.gif

Pour la licence je ne savais pas ! Il faut mettre la licence anglaise ? On la trouve où ?

Je prend en compte ta remarque de pouvoir sélectionner son répertoire de sauvegarde en entrant son url. (même si un répertoire nommée "sauvegarde" me paraît approprié ^^)

Pour ce qui est de sélectionner sa base de donnée ba comme dans la v2 il suffira de remplir un champ, je ne penses pas que je le ferais wink.gif

Pour ce qui est du dossier "sauvegarde" dans l'archive, de toute façon je vais intégrer une fonction qui testera si le dossier existe ou pas wink.gif après c'est au webmaster de créer le dossier de son choix. Par défaut le chemin sera celui du dossier (dans lequel je mettrais un txt ^^)

Merci pour toutes tes remarques :woot:
J'en prend note. Je ferais la v2 ... heu, je ne sais pas quand, il faut que je trouve le temps !

Pour ce qui est des traductions, contactez moi par MP si ça vous intéresse wink.gif

EDIT : finaement je ne mettrais pas la possibilité de zipé sa sauvegarde ...
Donc prochaine version, sauf truc à changer rapidement c'est la v2 biggrin.gif

Je vous tiendrais au courant wink.gif
K20
Pour info : je suis en train de commencer la v2

Je prendrais en compte le plus de remarques possible de Xtouch wink.gif
Antoine_935
je n'ai pas de base de données sur mon pc, mais le logiciel ùe sembe assez complet smile.gif
petite question : avec quelle(s) base de données marche-t-il ?
Si elle ne marche pas avec PostgreSQL, développe la pour : ca ressemble fort a MySQL et c'est une base de données fortement utilisée aussi wink.gif
K20
Pour le moment c'est simplement MySQL wink.gif

Je ne connais pas PostgreSQL, je m'y mettrais si j'ai le temps smile.gif
Antoine_935
les fonctions sont quasiment les memes smile.gif
exemple :
mysql_connect => pg_connect
mysql_fetch_object => pg_fetch_object
etc etc etc...
! mysql_query => pg_EXEC
K20
Oui mais la structure n'est surement pas la même wink.gif

Je fais déjà un script qui fnctionne avec MySQL et je verrais après tongue.gif
Xtouch
Tiens au fait K20, j'ai relu ton message et y'a quelque chose qui ne va pas :
Citation
le fichier config ne servira que pour les fonctions dans la v2

Un fichier de config n'est pas fait pour mettre des fonctions. Il est dommage de mettre toutes les fonctions du script dans un fichier config.php, surtout si un autre développeur souhaite modifier ton projet, ça risque de ne pas lui faciliter la tache.

Pour les licences, il faut absolument mettre l'original. Tu peux mettre éventuellement une traduction voire un résumé sommaire des droits et devoir de l'utilisateur, d'autres scripts le font. (Google pour des infos là dessus).

Bon je file me coucher, demain c'est la rentrée.
N'hésite pas à m'envoyer des MP si besoin.
K20
Citation
Un fichier de config n'est pas fait pour mettre des fonctions.
Ba tu veux que je les mettes où mes fonctions ? sad.gif
Xtouch
Dans un fichier fonctions.php ! Un peu de bon sens !
K20
Lol ^^
Ok, ça sera pas long, de toute façon, je suis en train de revoir plein de choses wink.gif

Pour le moment je m'occupe de l'interface, je verrais le reste après smile.gif

Merci ^_^
(j'ai fait le logo aussi ...)
Antoine_935
un autre nom souvent employé pour le fichier contenant fonctions et autres choses : mainfile.php smile.gif
K20
Fiou, voilà, j'ai enfin fini l'interface ... tongue.gif
Donc comme votre aide m'est précieuse, vous avez le droit à une démo wink.gif
K20save 2.0 (interface)
Ne mettez pas anglais pour la langue, je n'ai pas complété le fichier, je le ferais plus tard ...

Demain je m'attaque au module de sauvegarde, il devrait pas y avoir beaucoup de modifs à faire wink.gif
Antoine_935
Ca a l'air pas mal, l'intro semble plaisante ( j'aime bcp le logo wink.gif )
mais bon, faut une user, bdd et pwd, donc je ne peux pas aller plus loin smile.gif
K20
Je vous annonce que j'ai renomme mon script biggrin.gif

Desormais se sera MyKtools et non plus K20save, ca cadre mieux avec ses nouvelles fonctions wink.gif

EDIT : je vais créer un nouveau compte free (encore un ...) pour que vous puissiez tester le script entièrement smile.gif
WazAtaX
Wahou ! Trsè intéressant biggrin.gif

Je prends merci biggrin.gif

Bonne continuation wink.gif
K20
C'est pas fini ^^
Je te conseille d'attendre la v2 wink.gif
WazAtaX
Ok, alors je le met de coté pour le moment =)

Elle sort quand cette fameuse ? =D
Fantome
Comme dirai certain : "Qaund elle sortira." wink.gif
K20
Surement dans 2 semaines sinon a Noel grand maxiumum wink.gif
WazAtaX
Citation (Fantome @ vendredi 04 novembre 2005 à 18h16)
Comme dirai certain : "Qaund elle sortira." wink.gif
*


Comme je dirais moi :" Vraiment le genre de réponse qui sert vraiment a TCHI"

Citation (20 @ vendredi 04 novembre 2005 à 18h29)
Surement dans 2 semaines sinon a Noel grand maxiumum  wink.gif

Cool, vraiment sympas comme cadeau biggrin.gif
K20
J'espere que ca sera pret avant wink.gif
Antoine_935
Dis moi, pour l'hébergement, tu as pensé à SourceForge ?
K20
Heu, c'est a dire ?
WazAtaX
Je pense (enfin du moins si j'ai bien compris ^^) qu'il te demande si tu as penser au site sourceforge pour héberger ton projet.
K20
Heu non mais ça peut être une bonne idée wink.gif
Jojo
Salut,

Très bon script K20, je l'ai DL, je vais l'essayer mais en tout cas sa va être très utile smile.gif

A+ ^_^
K20
Je vous conseille de prendre la v2 quand elle sera terminé wink.gif

Il y a beaucoup d'amélioration et surtout des modules séparé pour faire ce que vous voulez smile.gif

Je vais pas mal avancer cette aprem je pense, je vais rajouter la possibilité de sauvegarder dans des cookies ses infos wink.gif
WazAtaX
Youpi ! =D

Chui impatien, j'ai fait une grosse bêtise ce matin et j'ai effacer la table qui contenais toute mes news XD

Vivement ce "piti" script pour éviter ce genre d'action digne des plus gros boulets XD
K20
Voilà, c'est bon, vous pouvez tester le script en allant ici : http://myktools.free.fr
Serveur : sql.free.fr
Login : myktools
Mot de passe : mylove :innocent:
Base de donnée : myktools

Pour le moment seul l'interface fonctionne wink.gif

EDIT : apparament la gestion des cookies fonctionne à merveille biggrin.gif

Je vais donc m'attaquer au script de génération dynamique du fichier de config pour le module de sauvegarde automatique wink.gif
Nokilling
Super bien ton script, j'espère pouvoir bientot utiliser la V2 final smile.gif
Xtouch
Citation (page de login)
paranètres

Paramètres wink.gif
Citation (Première page)
Pour celà

Pour cela smile.gif
Citation (Configuration)
elle ne sera utiliser

Elle ne sera utilisée

Ca fera plus classe wink.gif
Sinon c'est bien K20, ça devient cool ^_^
Je te ferais mon rapport un fois le script terminé smartass.gif (et dès que j'aurais du temps)
K20
Oulà, je doit être fatigué ... Merci pour les fautes, je corrige ça de ce pas wink.gif

Surtout "celà", c'est une vieille habitude que j'aimerais bien perdre :innocent:

Citation
Je te ferais mon rapport un fois le script terminé smartass.gif (et dès que j'aurais du temps)
Merci beaucoup ! :woot:
Trix
Citation
Not Found
The requested URL /mykdownload.php was not found on this server.


Je tombe sur ca...
K20
Oui, oui ne t'inquiète pas wink.gif

Comme je l'ai indiqué, pour le moment, seul l'interface est fait wink.gif

Et pour info, l'interface est complet, les cookies fonctionnes ! :woot:

EDIT : Et voici les logos :-D (sont pas super, mais au moins MyKtools aura ses logos wink.gif)







K20
Juste pour vous annoncer que vous pouviez tester le premier module (MyKsave) il est terminé et fonctionne parfaitement biggrin.gif

Je m'attaque au module de sauvegarde automatisé !

EDIT : Xtouch, tu m'avais conseillé d'utiliser la fonction sleep() je pensais mettre une pause de 1sec toutes les 100 valeurs, tu en penses quoi ??
Xtouch
Pourquoi pas wink.gif
Mais vérifie aussi ce genre de chose : la plupart des hébergeurs mutualisés (et gratuit) impose un limite à MAX_EXECUTION_TIME. C'est à dire qu'il limite le fait qu'un script puisse mettre 10 ans à s'éxécuter. Il font donc veiller à absolument pas dépasser cette limite qui est par défaut est de .... je ne sais pas trop combien ! (Fait des tests avec Free avec genre sleep(60), je pense que rien qu'avec ça, tu as une erreur).
The top of the top serait de laisser ou non la possibilité à l'utilisateur de mettre des pauses dans l'éxécution du script.


PS : on ne sait jamais également, tu peux toujours tenter de mettre au début de ton script un :
Code
@ini_set('max_execution_time', 300);

Ca ne marchera pas chez free mais on peut espèrer chez d'autres !
K20
Citation (Xtouch @ lundi 07 novembre 2005 à 08h37)
Pourquoi pas wink.gif
Mais vérifie aussi ce genre de chose : la plupart des hébergeurs mutualisés (et gratuit) impose un limite à MAX_EXECUTION_TIME. C'est à dire qu'il limite le fait qu'un script puisse mettre 10 ans à s'éxécuter. Il font donc veiller à absolument pas dépasser cette limite qui est par défaut est de .... je ne sais pas trop combien ! (Fait des tests avec Free avec genre sleep(60), je pense que rien qu'avec ça, tu as une erreur).
The top of the top serait de laisser ou non la possibilité à l'utilisateur de mettre des pauses dans l'éxécution du script.


PS : on ne sait jamais également, tu peux toujours tenter de mettre au début de ton script un :
Code
@ini_set('max_execution_time', 300);

Ca ne marchera pas chez free mais on peut espèrer chez d'autres !
*

Ok, ba pour le moment je mes la pause après on verra dans les futures versions wink.gif

Et le temps maximum d'exécution c'est 30 secondes smile.gif

Et enfin pour ta dernière ligne, j'y ai déjà pensé, c'est déjà mis dans le fichier :-D

Voilà, voilà !

Vous en pensez quoi des logos au fait ?
WazAtaX
Tient, jété persuadé que le temps max d'exe chez free c'était 15sec ^^

Sinon j'aime bie les logo, bien que le "MyKtool" soit un peu trop pixellisé à mon gout sur les 3 plus petits.
K20
Non d'après mes souvenirs c'est 30secondes wink.gif

Pour ce qui est du texte, ba quand c'est tout petit des fois c'est dur crying.gif
WazAtaX
je comprends je comprends, je te donne juste mon avis smile.gif
K20
Non, non mon script n'est pas mort ^^
J'avais juste fait une pause, là je suis reparti biggrin.gif

Donc pour info, tous les modules sont terminé, il n'y en a que 2 qui ne sont pas terminés (sur 5)

En fait, il y 2 bugs que je n'arrive pas à résoudre dans l'un des scripts ... (qui permet la regénération de la base de donnée) et une truc que je sais pas trop faire car y a des regex et que je suis nul dans ce domaine ...

Donc j'attends des réponses sur PHPFrance mais si quelqu'un s'y connaissant pas mal dans la gestion des fichiers .gz ou les requêtes énormes ou les regex, qu'il me contacte wink.gif

Quand tout fonctionnera normalement, je fais le fichier lisezmoi, je traduit le fichier lang en anglais et je poste wink.gif

S'il y a des traducteurs pour d'autres langues, me contacter par MP ^_^
Antoine_935
mmmh, a propos de requetes énormes, il faut savoir que la plupart des serveurs web génerent un message d'erreur lorsque le script prend plus de 8 Mo de ram et lorsque le temps d'execution dépasse 30 sec.
Il existe une fonction pour définir le temps d'execution max du script, par contre, pour la memoire, je ne sais pas si ca existe.
Si ca n'existe pas, il faudra veiller à bien optimiser ton script wink.gif

Pour la traduction, j peux te la faire en latin, mais je doute fort que ce soit très utile... à moins que tu n'arrives à trouver des gens parlant le latin et une autre langue intéressante wink.gif
K20
Citation (Antoine_935 @ mardi 15 novembre 2005 à 22h41)
mmmh, a propos de requetes énormes, il faut savoir que la plupart des serveurs web génerent un message d'erreur lorsque le script prend plus de 8 Mo de ram et lorsque le temps d'execution dépasse 30 sec.
Il existe une fonction pour définir le temps d'execution max du script, par contre, pour la memoire, je ne sais pas si ca existe.
Si ca n'existe pas, il faudra veiller à bien optimiser ton script wink.gif

Pour la traduction, j peux te la faire en latin, mais je doute fort que ce soit très utile... à moins que tu n'arrives à trouver des gens parlant le latin et une autre langue intéressante wink.gif
*
Heu le latin c'est une langue morte, donc c'est inutile wink.gif

Sinon pour l'optimisation j'ai fait certains trucs, ça s'améliorera au fur et à mesure des versions wink.gif
WazAtaX
Hahahahaha ! J'ai hate de voir la version finale ! =D
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'informations, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2010 Invision Power Services, Inc.