# 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.