【问题标题】:Django: manage.py standard commands not workingDjango:manage.py 标准命令不起作用
【发布时间】:2012-06-25 13:53:53
【问题描述】:

我正在使用 Django 1.4 和 PyCharm 2.5 作为我的 IDE 和 Postgres 数据库,在 Python 2.7 中开发一个 Web 应用程序。我能够运行诸如sqlsyncdb 之类的manage.py 命令来创建SQL 和表,但是无法识别其他命令。当我尝试运行 sqlreset(或任何其他删除表或更改数据的命令)时,我收到“未知命令”错误:

runnerw.exe C:\Python27\python.exe "C:\Program Files (x86)\JetBrains\PyCharm 2.5.1\helpers\pycharm\django_manage.py" sqlreset EventMapperApp C:/Users/Karen/PycharmProjects/eventsMap
Unknown command: 'sqlreset'
Type 'manage.py help' for usage.

Process finished with exit code 1

谁能帮我弄清楚发生了什么?

【问题讨论】:

    标签: python sql database django command


    【解决方案1】:

    Django 的管理命令不会自动运行可能会破坏数据库的命令(例如更改表或更改列类型的命令)。

    如果您想完全重置您的应用程序 - 就像您刚刚运行 syncdb 一样,您需要手动执行。

    我写了这个gist,它将重置您的数据库。它不可移植(仅适用于 *inx-like 系统),但它可能会对您有所帮助。

    注意:这将删除(删除)所有内容。

    echo 'from django.conf import settings; print settings.INSTALLED_APPS; quit();' | \
    python manage.py shell --plain 2>&1 | \
    tail -n1 | sed -r "s|^.*\((.*)\).*$|\1|; s|[',]| |g; s|django\.contrib\.||g" | \
    xargs python manage.py sqlclear | \
    python manage.py dbshell && python manage.py syncdb
    

    【讨论】:

      【解决方案2】:

      你确定你运行的是 Django 1.4 吗?我认为sqlreset 自 1.3 以来已被弃用,并且是slated to be removed in 1.5It is present in Django 1.4,但已在开发版中删除。

      【讨论】:

        【解决方案3】:

        没有sqlreset

        这里的信息:https://docs.djangoproject.com/en/dev/ref/django-admin/

        manage.py help,如您的帖子所示...

        【讨论】:

        • 我能想到的最好的就是sqlsequenceresetsqlclear
        • 哦!嗯,这很有意义,不是吗!我猜 PyCharm 的界面需要更新。
        • 但是在 Django 1.4 中有一个 sqlreset。但它已在开发中被删除。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-09-28
        • 2023-04-08
        • 2018-11-14
        • 2012-08-27
        • 2014-11-25
        • 2016-12-11
        • 2018-12-18
        相关资源
        最近更新 更多