Par défaut, lorsqu'une application pour iPhone utilise une base de données gérée par SwiftData, la base de donnée SQLite générée sur le simulateur est placée dans un dossier dont le nom est au format :
/Users/monnom/Library/Developer/CoreSimulator/Devices/[UDID]/data/Containers/Data/Application/[app GUID]/Library/Application Support/default.store
Dans cette fiche :
Pourquoi un développeur a-t-il besoin de savoir où est la base de données?
Premièrement, ceci lui donne un outil de débogage supplémentaire.
En effet, SwiftData se charge de créer la base de données et d'y insérer les données initiales que vous aurez codées. Tout est réalisé automatiquement pour vous.
Vous aurez besoin d'accéder à la base de données seulement lorsque vous désirez vous assurer que les données sont correctement enregistrées par votre application.
Ainsi, avant de vous plonger dans votre code pour déterminer pourquoi une donnée n'est pas correctement affichée, vous pouvez vérifier si les informations affichées correspondent à celles enregistrées dans la base de données.
Autre utilisation possible : il est parfois nécessaire de supprimer une base de données afin que SwiftData puisse la recréer, par exemple après avoir modifié sa structure pendant la phase de développement.
Il serait possible de supprimer la base de données à l'aide du menu du simulateur :
/ . Le problème avec cette approche est que toutes les configurations effectuées sur le simulateur (langue, clavier physique, etc.) seront supprimées en plus de la base de données. Aussi, le prochain lancement de l'application dans le simulateur sera passablement plus long.Puisque vous connaissez l'emplacement de la base de données, il est beaucoup plus efficace de la supprimer directement.
En plus du fichier default.store, on retrouvera deux autres fichiers dans le même dossier : default.store-shm et default.store-wal.
Ces fichiers supplémentaires sont des fichiers temporaires utilisés par SQLite.
Si vous devez copier la base de données, il faut copier les trois fichiers pour que les données soient correctement représentées.
Dans le chemin de la base de données, [UDID], acronyme pour Unique Device ID, représente l'identifiant du simulateur utilisé.
[app GUID] représente l'identifiant unique de l'application.
Le nom du dossier réel pourrait ressembler à ceci :
/Users/monnom/Library/Developer/CoreSimulator/Devices/BBC44596-3E5E-473B-944E-C5F0EE11C4A5/data/Containers/Data/Application/7CABA34E-2DC9-4553-8639-3E38967E5769/Library/Application Support
Si vous avez besoin de retrouver physiquement la base de données, je vous propose quelques techniques pour y arriver : « Retrouver un fichier dans le simulateur ».
SwiftData peut générer une seconde base de données default.store dans un dossier au format /Users/monnom/Library/Developer/CoreSimulator/Devices/[UDID]/data/Library/Application Support (notez la fin du chemin qui est différente, notamment par l'absence du [app GUID]).
Cette base de données fait partie de l'implémentation interne de SwiftData. Elle ne contient pas les tables liées à vos modèles.
▼Publicité