IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

comment traduire un script python pour passer des tables innodb de mysql à sqlite ?


Sujet :

Python

  1. #1
    Membre régulier Avatar de Mydriaze
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 192
    Points : 95
    Points
    95
    Par défaut comment traduire un script python pour passer des tables innodb de mysql à sqlite ?
    Bonjour à tous,

    Je dois transformer des scripts python qui créent, remplissent, modifient, exploitent les informations de tables innodb sous mysql pour que ça fasse la même chose sur un cluster qui n'a que sqlite
    Ensuite je rapatrierai les tables remplies sur le cluster dans mon mysql .

    J'ai donc commencé à faire une pettite fonction pour traduire le mysql en slite:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
     
        def convert_script(self):
            script_sqlite = nom_script_mysql[:-3] + "_sqlite.py"
            _fichier(nom_script_sqlite, "w").cree_fichier()
            ligne_finale = ""
            for ligne in lit_fichier_r(script_mysql) :
                if "CONSTRAINT" in ligne or "ENGINE" in ligne or "CHARSET" in ligne :
                    continue
                if "#" not in ligne:
                    # Changement du nom des types :
                    ligne = re.sub("TINYINT|SMALLINT|MEDIUMINT|INT|BIGINT",' INTEGER', ligne)
                    ligne = re.sub("DECIMAL|FLOAT|DOUBLE",' REAL', ligne)
                    ligne = re.sub("CHAR|VARCHAR",' TEXT', ligne)
                    ligne = re.sub("NONE",' NULL', ligne)
                    # Suppression des motifs suivants 
                    ligne = re.sub ("DEFAULT [0-9]+",'',ligne)
                    ligne = re.sub ("\([0-9]+\)",'',ligne)
                    ligne = re.sub ("NOT NULL |UNSIGNED |AUTO_INCREMENT ",'',ligne)
                    ligne = re.sub ("DEFAULT \\\\\".+\\\\\"",'',ligne)
                    ligne = re.sub ("DEFAULT \\\\\'.+\\\\\'",'',ligne)
                    ligne = re.sub ("COMMENT \\\\\".+\\\\\"",'',ligne)
                    ligne = re.sub ("COMMENT \\\\\'.+\\\\\'",'',ligne)
                    ligne = re.sub ("    ,|   ,|  ,",',',ligne)  
                if ")" in ligne and "(" not in ligne:
                    ligne_finale = ligne_finale[:-2]+ "\n"+ ligne
                else :
                    ligne_finale += ligne
            _fichier(script_sqlite, "a").ecrit_fichier(ligne_finale)
    re.sub( motif_a_enlever , motif_a_placer, phrase_à_tester)
    sert à remplacer un motif par un autre ds une phrase.

    mais je ne comprends même pas ce qu'il faut que je change concretement.
    La seule chose qui est claire c'est le changement de nom des types et du "none" qui devient "null"
    Tout le reste je ne comprends pas s'il faut le garder ou pas et sous quelle forme...
    Parce qu'il y a le probleme des cles primaires , des cles etrangeres, les updates et les deletes on cascade, les indexes les constraint,
    tout ce qui est
    NOT NULL , UNSIGNED ,AUTO_INCREMENT
    DEFAULT [0-9],
    ([0-9])
    COMMENT
    ...

    Tout ça, ça devient quoi?

    Je n'y comprends rien ... ,

    C'est supprimé? c'est remplacé? ça reste comme ça?

    Les updates en cascade ça se fait qd meme?

    j'ai cherché sur les precedents posts qui donnent des liens vers le sqlite...
    idem avec google...
    Je trouve rien (ou je comprends pas) pour resoudre concretement ces points là...

    Si qqn a dejà eu ce probleme pourriez vous me conseiller s'il vous plait ?

    Merci d'avance ...

    PS :
    j'ai posté la meme chose dans la rubrique MySQL

  2. #2
    Membre régulier Avatar de Mydriaze
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 192
    Points : 95
    Points
    95
    Par défaut
    Bon, j'ai eu ma reponse...

    ça n'est pas possible...

    probleme réglé...

    Desolée pour le dérangement...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 14/08/2013, 15h19
  2. Réponses: 1
    Dernier message: 02/04/2009, 16h10
  3. Quel outil utilisé pour passer des scripts sur DB2?
    Par Valentinne dans le forum DB2
    Réponses: 2
    Dernier message: 10/07/2007, 18h12
  4. Réponses: 1
    Dernier message: 06/09/2006, 18h11
  5. Réponses: 5
    Dernier message: 20/07/2006, 01h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo