2010-03-14 6 views
2

Supposons que mes modèles soient déjà configurés.Base de données Django - comment ajouter cette colonne en SQL brut

class books(models.Model): 
    title = models.CharField... 
    ISBN = models.Integer... 

Et si je voulais ajouter cette colonne à mon tableau?

user = models.ForeignKey(User, unique=True) 

Comment écrire le code SQL brut dans ma base de données pour que cette colonne fonctionne?

Répondre

5

Vous devriez étudier un outil comme South, qui fait tout cela pour vous.

Cependant, le SQL serait quelque chose comme (en supposant que vous utilisez MySQL):

ALTER TABLE `appname_books` ADD COLUMN `user_id` INTEGER NOT NULL UNIQUE; 
ALTER TABLE `appname_books` ADD CONSTRAINT `user_id_refs_user` FOREIGN KEY (`user_id`) REFERENCES auth_user (`id`); 
+0

Si je l'ai déjà données en cours d'exécution, et une base de données de configuration .... puis-je utiliser du Sud en ce moment? Ou vais-je devoir recréer toutes les tables? – TIMEX

+0

Toute personne qui vient et voit le commentaire de Alex, cela est abordé dans sa question plus tard (http://stackoverflow.com/questions/2445761/django-migrations-is-it-possible-to-use-south-in-the- moyen-de-projet). –

+0

@TIMEX, oui. Vous pouvez commencer à utiliser South à tout moment. – mlissner