bonjour

voici 2 méthodes pour creer des tables sqllite avec sqlalchemy
j'aimerai savoir quelles sont les différences entre ces méthodes.

est_ce utilisable avec d'autres bases en adaptant biensur le create engine?

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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
 
 
# coding: utf-8
 
from sqlalchemy import exc
from sqlalchemy import *
from sqlalchemy.orm import *
from sqlalchemy.ext.declarative import declarative_base
 
 
#--------------------------Declaration des sessions et acces aux bases
Base = declarative_base()    # prerequis 
metadata_base = Base.metadata
metadata = MetaData()
 
type ='sqlite:///aserenouve.db'
engine = create_engine(type, echo=True)
 
 
 
 
class T_T1( Base ):
    __tablename__ = 'T1' 
    __table_args__ = (
        Index('T1_index1', 'Nom_joueur', 'Nom_fichier'),
        Index('T1_index2', 'Pj_Nom', 'Pj_prnNom', 'Age')
    )
    Id_data =  Column(Integer, primary_key=True,  autoincrement=True) 
    Nom_fichier = Column(String(64))
    Nom_joueur = Column(String(128))
    Reference = Column(String(16))
    Pj_Nom = Column(String(75))
    Pj_prnNom = Column(String(75))
    Sexe = Column(String(1))
    Age = Column(Integer)
    Lieux_Naissance =Column(String(128))
 
 
 
 
T_T2 = Table(
     'T2' , metadata,    
    Column('Id_data',Integer,primary_key=True,autoincrement=True),
    Column('Nom_fichier' ,String(64)),
    Column('Nom_joueur' ,String(128)),
    Column('Reference' ,String(16)),
    Column('Pj_Nom' ,String(75)),
    Column('Pj_prnNom' ,String(75)),
    Column('Sexe' ,String(1)),
    Column('Age',Integer),
    Column('Lieux_Naissance' ,String(128)),
    Index('T2_index1', 'Nom_joueur', 'Nom_fichier'),
    Index('T2_index2', 'Pj_Nom', 'Pj_prnNom', 'Age')
    )
 
 
 
metadata.create_all(engine)
metadata_base.create_all(engine)


[/CODE]