File size: 2,908 Bytes
4e6f7f4 | 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 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 | # Plan de Migration Appwrite: Databases → Tables API
## État Actuel
**Version SDK:** `appwrite>=1.0`
**API Utilisée:** `Databases` (Service classique)
**Statut:** ✅ Fonctionnel, mais deprecated
## Warnings Observés
Appwrite 1.5+ introduit des avertissements pour les anciennes méthodes:
```
DeprecationWarning: ...
```
Les méthodes utilisées actuellement:
- ✅ `databases.get()`
- ✅ `databases.create_collection()`
- ✅ `databases.list_documents()`
- ✅ `databases.create_document()`
- ✅ `databases.update_document()`
- ✅ `databases.delete_document()`
## Nouvelles API (Tables)
Appwrite transition vers:
- `databases.create_table()` à la place de `create_collection()`
- `databases.create_row()` à la place de `create_document()`
- `databases.list_rows()` à la place de `list_documents()`
- `databases.get_row()` à la place de `get_document()`
- `databases.update_row()` à la place de `update_document()`
- `databases.delete_row()` à la place de `delete_document()`
## Timeline
- **Aujourd'hui:** Code Appwrite actuel fonctionne parfaitement
- **Quelques mois:** Les warnings vont augmenter
- **Futur:** Les anciennes API seront supprimées (pas de date fixée)
## Recommandations
### Court terme (immédiat)
✅ Le code fonctionne - pas d'action requise
✅ Les données Appwrite persistent correctement
✅ Les vues Django affichent les données sans problème
### Moyen terme (1-2 mois)
- Mettre à jour `requirements.txt` avec une version Appwrite spécifique (ex: `appwrite==1.8.0`)
- Commencer à planifier la migration vers Tables API
### Long terme (futur)
- Créer une branche `feature/appwrite-tables-migration`
- Mettre à jour `enise_site/appwrite_db.py` pour utiliser `Databases` + Tables
- Tester complètement avant de merger
## Structure actuelle de `appwrite_db.py`
```python
from appwrite.services.databases import Databases
class AppwriteDB:
def __init__(self):
self.databases = Databases(self.client) # Service classique
def list_documents(self, collection_id, queries=None):
# Utilise l'API Databases classique
return self.databases.list_documents(
database_id=self.database_id,
collection_id=collection_id,
queries=queries
)
```
## Migration possible (exemple de refactoring)
Lors de la migration, on pourrait:
```python
# Avant
doc = self.databases.create_document(collection_id, data)
# Après (possible)
row = self.databases.create_row(table_id, data)
```
Mais cela nécessite:
1. Vérifier si les collections existantes sont automatiquement converties en tables
2. Tester les queries (Query API reste-elle compatible?)
3. Vérifier les permissions
4. Potentiellement refactoriser les services
## Conclusion
**Pas d'action urgente.**
L'app fonctionne parfaitement.
On peut mettre à jour quand Appwrite retire complètement les anciennes API.
|