我正在尝试Django书中的第6章。
将某些字段更改为blank = True,并且null = True后,我们会被告知使用dbshell更新表。
当我输入:python manage.py dbshell时,会出现以下错误:
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.
我知道这些命令可能是错误的,但我可以尝试任何操作,它总是指出相同的错误,并在“”中显示命令的第一个单词。
任何帮助?
答案 0 :(得分:1)
SQLite has very limited ALTER TABLE
support。
您必须删除并重新创建表格。
答案 1 :(得分:0)
正如错误消息所示,某处存在语法错误。您应该检查(或在此处发布)描述Documents
类的部分语法错误:)
答案 2 :(得分:0)
我现在意识到Django不能很好地支持数据库迁移。完成初始迁移并设置原始表后,无法仅使用Django添加或修改字段。您需要像South这样的数据库迁移模式。