Base de données et modèles
Base de données
Le projet utilise SQLite comme base de données.
Le fichier principal est situé à la racine du projet :
oc-lettings-site.sqlite3
Django accède aux données par l’intermédiaire de son ORM. Les requêtes SQL directes ne sont donc pas nécessaires dans le fonctionnement normal de l’application.
Modèle Address
Le modèle Address appartient à l’application lettings.
Il représente l’adresse d’un bien immobilier et contient les informations suivantes :
numéro ;
rue ;
ville ;
État ou région ;
code postal ;
code du pays.
La table correspondante est :
lettings_address
Modèle Letting
Le modèle Letting appartient à l’application lettings.
Il représente une location et contient :
un titre ;
une relation vers une adresse.
Chaque location est associée à une seule adresse au moyen d’une relation
OneToOneField.
La table correspondante est :
lettings_letting
Modèle Profile
Le modèle Profile appartient à l’application profiles.
Il complète le modèle utilisateur fourni par Django et contient :
une relation vers un utilisateur Django ;
une ville favorite.
Chaque profil est associé à un seul utilisateur au moyen d’une relation
OneToOneField.
La table correspondante est :
profiles_profile
Relations principales
Les principales relations de données sont les suivantes :
un
Lettingest lié à unAddress;un
Profileest lié à un utilisateur Django ;la suppression d’un objet lié entraîne la suppression de l’objet dépendant lorsque l’option
on_delete=models.CASCADEest utilisée.
Migrations
Les migrations Django décrivent les évolutions successives de la base de données.
Elles sont stockées dans les dossiers suivants :
lettings/migrations;profiles/migrations;oc_lettings_site/migrations.
Lors de la séparation de l’application monolithique, des migrations de données ont copié les anciens enregistrements vers les nouvelles tables.
Ces migrations ont conservé :
les identifiants existants ;
les relations entre les locations et les adresses ;
les relations entre les profils et les utilisateurs.
Commandes utiles
Afficher l’état des migrations :
python manage.py showmigrations
Créer une migration après une modification de modèle :
python manage.py makemigrations
Appliquer les migrations :
python manage.py migrate
Ouvrir le shell Django pour consulter les données avec l’ORM :
python manage.py shell