8
votes

Générez le dépotoir de données MySQL dans SQL de PHP

J'écris un script PHP pour générer des vidanges SQL de ma base de données à des fins de contrôle de la version. Il déverrouille déjà la structure de données au moyen d'exécuter les montrant appropriés Créer .... requête. Maintenant, je veux jeter des données lui-même mais je ne suis pas sûr de la meilleure méthode. Mes exigences sont les suivantes:

  • J'ai besoin d'un enregistrement par ligne
  • Les lignes doivent être triées par la clé primaire
  • SQL doit être valide et exact, peu importe le type de données (entiers, chaînes, données binaires ...)
  • Les décharges doivent être identiques lorsque les données n'ont pas changé

    Je peux détecter et exécuter mysqldump comme commande externe mais qui ajoute une exigence système supplémentaire et j'ai besoin d'analyser la sortie afin de supprimer les en-têtes et les pieds de page de page avec des informations de part, je n'ai pas besoin (telle en tant que version de serveur ou date de vidage). J'adorerais garder mon script aussi simple que possible afin que cela puisse être tenu dans un fichier autonome.

    Quelles sont mes alternatives?


8 commentaires

Pendant ce temps, j'essaie d'afficher l'index et mysql_real_escapape_string ()


MySqldump n'ajoute pas vraiment d'exigence système supplémentaire, elle est livrée avec MySQL.


Alors mysqldump ajoute MySQL comme une exigence système. La plupart des Devs autour d'ici ne disposent pas d'un serveur local: ils se connectent au serveur commun dans le réseau local.


Si MySQL s'exécute sur le serveur commun et que votre script s'exécute également sur le serveur commun, je ne vois aucun problème.


Êtes-vous sûr que les données de versement utilisant des décharges fabriquées à la maison sont une bonne idée? J'aime l'idée de verser le schéma, mais des données?


@Banzaimonkey: Je ne peux pas vous suivre. Nous cotisons tous dans nos PC respectifs. Nous ne nous connectons même pas au serveur où MySQL est en cours d'exécution.


@Newtover: Alors, quelle est votre proposition pour, par exemple, de garder une table avec des noms de pays? Les taper à chaque fois?


@ Álvaro: Vous pourriez peut-être clarifier l'environnement de développement de votre équipe?


3 Réponses :


0
votes

pourrait toujours essayer la fonction système (). J'espère que vous êtes sous Linux :)


1 commentaires

Il y a aussi des systèmes en dehors de Linux :)



1
votes

Je pense que l'analyse de la puissance de MySqldump est toujours la plus facile. Je pense qu'il y a vraiment peu de métadonnées que vous devez exclure et, donc, ils ne devraient donc être que quelques lignes de code.

Vous pouvez également consulter les options de mysqDump suivantes: --TAB, - COMPACACT


0 commentaires

0
votes

"Sélectionnez * à partir de la commande de nom de table par clé primaire" Vous pouvez obtenir les noms de table à partir de la base de données INFORMATION_SCHEMA ou de la commande "Afficher les tables". Peut également obtenir la clé primaire de "Afficher les index du nom de table" et ensuite boucle et créer des déclarations d'insertion de strings


0 commentaires