【问题标题】:Table is Not Dropping in PostrgreSQL database表未在 PostgreSQL 数据库中删除
【发布时间】:2013-02-12 09:56:19
【问题描述】:

我想在 Heroku 上的 Postgres 数据库中删除一个表。但是我还没有完全了解 South,所以我决定写一个函数:

def dropTable(request):
    cursor = connection.cursor()
    cursor.execute("DROP TABLE books_request CASCADE;")
    success = simplejson.dumps({"success":"success",})
    return HttpResponse(success, mimetype="application/json")

所以现在我的books_request table 已被删除。

然后我在 Heroku 上为我的应用程序进入 bash,我做了 python manage.py syncdb 希望它会重新创建表,但似乎没有。为什么?

有没有办法强制同步那个应用程序?

我也收到此错误消息,这可能是同步时问题的一部分:

Problem installing fixture '/app/bookstore/fixtures/initial_data.json': Traceback (most recent call last):
DatabaseError: Could not load sites.Site(pk=1): value too long for type character varying(50)

更新:

我认为问题在于表格一开始并没有下降,因为当我转储数据时,我仍然可以看到表格。为什么它没有正确删除表格?

【问题讨论】:

    标签: django postgresql heroku


    【解决方案1】:

    如果您使用的是 south,您可能需要运行 migrate 命令。此外,如果它将迁移视为已应用,则不会重新运行它。尝试运行以下命令,然后添加输出:

    heroku run python manage.py migrate
    

    【讨论】:

    • 我不使用 South,因为我不知道如何使用它......现在我已经放下桌子了,现在还可以使用它吗?
    【解决方案2】:

    是的,你可能没有掉表,你只是认为你已经掉了。

    确保您首先通过以下方式正确引用连接:

    from django db import connection
    

    使用 django 调试工具栏查看执行的 sql 以及发生了什么。或者可能在 heroku shell 上使用 pudb 之类的调试程序来查看发生了什么。

    【讨论】:

      猜你喜欢
      • 2014-07-29
      • 2011-03-20
      • 2020-04-18
      • 1970-01-01
      • 2013-07-25
      • 2010-10-02
      • 2017-08-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多