tiffank1802 commited on
Commit
4e6f7f4
·
1 Parent(s): b339aa2

docs: Add Appwrite migration plan for future Tables API transition

Browse files
Files changed (1) hide show
  1. APPWRITE_MIGRATION_PLAN.md +97 -0
APPWRITE_MIGRATION_PLAN.md ADDED
@@ -0,0 +1,97 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Plan de Migration Appwrite: Databases → Tables API
2
+
3
+ ## État Actuel
4
+
5
+ **Version SDK:** `appwrite>=1.0`
6
+ **API Utilisée:** `Databases` (Service classique)
7
+ **Statut:** ✅ Fonctionnel, mais deprecated
8
+
9
+ ## Warnings Observés
10
+
11
+ Appwrite 1.5+ introduit des avertissements pour les anciennes méthodes:
12
+
13
+ ```
14
+ DeprecationWarning: ...
15
+ ```
16
+
17
+ Les méthodes utilisées actuellement:
18
+ - ✅ `databases.get()`
19
+ - ✅ `databases.create_collection()`
20
+ - ✅ `databases.list_documents()`
21
+ - ✅ `databases.create_document()`
22
+ - ✅ `databases.update_document()`
23
+ - ✅ `databases.delete_document()`
24
+
25
+ ## Nouvelles API (Tables)
26
+
27
+ Appwrite transition vers:
28
+ - `databases.create_table()` à la place de `create_collection()`
29
+ - `databases.create_row()` à la place de `create_document()`
30
+ - `databases.list_rows()` à la place de `list_documents()`
31
+ - `databases.get_row()` à la place de `get_document()`
32
+ - `databases.update_row()` à la place de `update_document()`
33
+ - `databases.delete_row()` à la place de `delete_document()`
34
+
35
+ ## Timeline
36
+
37
+ - **Aujourd'hui:** Code Appwrite actuel fonctionne parfaitement
38
+ - **Quelques mois:** Les warnings vont augmenter
39
+ - **Futur:** Les anciennes API seront supprimées (pas de date fixée)
40
+
41
+ ## Recommandations
42
+
43
+ ### Court terme (immédiat)
44
+ ✅ Le code fonctionne - pas d'action requise
45
+ ✅ Les données Appwrite persistent correctement
46
+ ✅ Les vues Django affichent les données sans problème
47
+
48
+ ### Moyen terme (1-2 mois)
49
+ - Mettre à jour `requirements.txt` avec une version Appwrite spécifique (ex: `appwrite==1.8.0`)
50
+ - Commencer à planifier la migration vers Tables API
51
+
52
+ ### Long terme (futur)
53
+ - Créer une branche `feature/appwrite-tables-migration`
54
+ - Mettre à jour `enise_site/appwrite_db.py` pour utiliser `Databases` + Tables
55
+ - Tester complètement avant de merger
56
+
57
+ ## Structure actuelle de `appwrite_db.py`
58
+
59
+ ```python
60
+ from appwrite.services.databases import Databases
61
+
62
+ class AppwriteDB:
63
+ def __init__(self):
64
+ self.databases = Databases(self.client) # Service classique
65
+
66
+ def list_documents(self, collection_id, queries=None):
67
+ # Utilise l'API Databases classique
68
+ return self.databases.list_documents(
69
+ database_id=self.database_id,
70
+ collection_id=collection_id,
71
+ queries=queries
72
+ )
73
+ ```
74
+
75
+ ## Migration possible (exemple de refactoring)
76
+
77
+ Lors de la migration, on pourrait:
78
+
79
+ ```python
80
+ # Avant
81
+ doc = self.databases.create_document(collection_id, data)
82
+
83
+ # Après (possible)
84
+ row = self.databases.create_row(table_id, data)
85
+ ```
86
+
87
+ Mais cela nécessite:
88
+ 1. Vérifier si les collections existantes sont automatiquement converties en tables
89
+ 2. Tester les queries (Query API reste-elle compatible?)
90
+ 3. Vérifier les permissions
91
+ 4. Potentiellement refactoriser les services
92
+
93
+ ## Conclusion
94
+
95
+ **Pas d'action urgente.**
96
+ L'app fonctionne parfaitement.
97
+ On peut mettre à jour quand Appwrite retire complètement les anciennes API.