Bonjour,
Très intéressé par sqlAlchemy, qui semble très puissant, j'ai réalisé quelques tests et tutoriaux. Mais il semble y avoir un bug assez sérieux... Dans le code suivant :
- je créée une table "users" que je charge
- je créée une classe "user" mappée avec la table "users"
- je créée un objet "user" que j'enregistre dans la base de données
- enfin je sélectionne toutes les données de la table "users" que j'affiche
Lorsque que j'exécute le code suivant, le résultat est [(1, u'TOTO', 19)] ou [] !! Parfois aucune donnée n'est ajoutée !! L'anomalie semble aléatoire lorsque je duplique ce fichier .py ou que je fais un copier-coller du code dans un nouveau fichier (en modifiant le nom de la BDD à chaque fois). En fait, soit les modifications de BDD se font correctement, soit elles ne se font pas du tout !! Par contre, cela fonctionne lorsque je fais des ajouts directement dans la table (sans passer par la classe), mais pas en passant par le classe.
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 from sqlalchemy import * db = create_engine('sqlite:///test18.db') db.echo = False metadata = BoundMetaData(db) users = Table('users', metadata, Column('user_id', Integer, primary_key=True), Column('name', String(40)), Column('age', Integer), Column('password', String), ) users.create() users = Table('users', metadata, autoload=True) class User(object): pass usermapper = mapper(User, users) session = create_session() user1 = User() user1.name = 'TOTO' user1.age = 19 session.save(user1) session.flush result = users.select().execute() row = result.fetchall() print row
Quelqu'un a-t-il déjà rencontré cette erreur ? S'agit-il d'une coquille dans mon code ?
Anddi
Partager