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 decreate_collection()databases.create_row()à la place decreate_document()databases.list_rows()à la place delist_documents()databases.get_row()à la place deget_document()databases.update_row()à la place deupdate_document()databases.delete_row()à la place dedelete_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.txtavec 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.pypour utiliserDatabases+ Tables - Tester complètement avant de merger
Structure actuelle de appwrite_db.py
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:
# Avant
doc = self.databases.create_document(collection_id, data)
# Après (possible)
row = self.databases.create_row(table_id, data)
Mais cela nécessite:
- Vérifier si les collections existantes sont automatiquement converties en tables
- Tester les queries (Query API reste-elle compatible?)
- Vérifier les permissions
- 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.