【问题标题】:"Error: near "Documents": syntax Error" - sqlite3/Django“错误:靠近“文档”:语法错误” - sqlite3/Django
【发布时间】:2012-10-30 13:08:29
【问题描述】:

我正在尝试 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.

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

有什么帮助吗?

【问题讨论】:

  • 您是否真的在输入“C:\Users”和“sqlite>”提示符?

标签: django sqlite


【解决方案1】:

SQLitehas very limited ALTER TABLE support.

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 没有 Documents 类...它是从我运行 dbshel​​l 的路径中获取的...:(
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-11
      • 2019-02-07
      • 2020-02-06
      • 2019-01-12
      • 2014-05-17
      • 2021-10-19
      • 2018-07-27
      • 1970-01-01
      相关资源
      最近更新 更多