【问题标题】:Django database - how to add this column in raw SQLDjango 数据库 - 如何在原始 SQL 中添加此列
【发布时间】:2026-01-27 04:15:02
【问题描述】:

假设我已经设置好了模型。

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

如果我想将此列添加到我的表中怎么办?

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

我将如何在我的数据库中编写原始 SQL 以使该列正常工作?

【问题讨论】:

    标签: python mysql database django


    【解决方案1】:

    您应该研究像 South 这样的工具,它可以为您完成所有这些工作。

    但是 SQL 会是这样的(假设您使用的是 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`);
    

    【讨论】:

    • 如果我已经有正在运行的数据,并且已经建立了数据库......我现在可以使用 South 吗?还是我必须重新创建所有表?
    • 任何出现并看到 alex 评论的人,这将在他后来的问题 (*.com/questions/2445761/…) 中得到解决。
    • @TIMEX,是的。您可以随时开始使用 South。