Aucune des réponses ne montre comment supprimer une seule table dans une application. Ce n'est pas trop difficile. Le site dbshell
permet à l'utilisateur de se connecter au shell sqlite3.
python manage.py dbshell
Lorsque vous êtes dans le shell, tapez la commande suivante pour voir la structure de votre base de données. Cela vous montrera tous les noms de tables de la base de données (ainsi que les noms de colonnes dans les tables).
SELECT * FROM sqlite_master WHERE type='table';
En général, Django nomme les tables selon la convention suivante : " nom_modèle ". Par conséquent, la requête SQL qui permet d'atteindre votre objectif ressemblera à ce qui suit :
DROP TABLE appname_modelname;
Cela devrait être suffisant, même si la table a des relations avec d'autres tables. Maintenant, vous pouvez vous déconnecter du shell SQLITE en exécutant :
.exit
Si vous exécutez à nouveau syncdb, Django reconstruira la table en fonction de votre modèle. De cette façon, vous pouvez mettre à jour vos tables de base de données sans perdre toutes les données de l'application. Si vous rencontrez souvent ce problème, envisagez d'utiliser South - une application Django qui migrera vos tables pour vous.
1 votes
C'est à dessein. Synchroniser les alters et les drops ouvrirait une boîte de Pandore géante. George a la bonne réponse pour vous.