1

我正在尝试 Django 书中的第 6 章。

在将某些字段更改为空白=True 和 null=True 后,我们被告知使用 dbshel​​l 更新表。

当我输入:python manage.py dbshel​​l,出现如下错误:

C:\Users\Rafa\Documents\Python\book>python manage.py dbshell
Error: near: "Documents": syntax error.

我尝试在我的书目录中安装 sqlite3.exe 并直接从那里运行。每当我尝试运行命令时,我仍然会遇到相同的错误。例如,曾经在 sqlite3 shell 上(打开可执行文件):

sqlite>ALTER TABLE books_book ALTER COLUMN publication_date DROP NOT NULL;
Error: near "ALTER": syntax error.

我知道命令可能是错误的,但我可以尝试任何方法,它总是会指出相同的错误并在“”中显示命令的第一个单词。

有什么帮助吗?

4

3 回答 3

1

SQLite的支持非常有限ALTER TABLE

您必须删除并重新创建表。

于 2012-10-30T15:20:58.310 回答
0

正如错误消息所暗示的那样,某处存在语法错误。您应该检查(或在此处发布)描述Documents类的部分是否存在一些语法错误:)

于 2012-10-30T14:23:06.873 回答
0

我现在意识到 Django 不能很好地支持数据库迁移。一旦您进行了初始迁移并设置了原始表,就不可能仅使用 Django 添加或修改字段。您需要像 South 这样的数据库迁移模式。

于 2012-11-14T12:08:45.840 回答