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:
re.sub( motif_a_enlever , motif_a_placer, phrase_�_tester)
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)
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
Partager