【问题标题】:How to drop a single table in Heroku for Django app如何在 Heroku for Django 应用程序中删除单个表
【发布时间】:2012-06-01 20:16:19
【问题描述】:

我知道如何在 Django (Destroying a Postgres DB on Heroku) 中将整个数据库放到 heroku 中。但是,我只想删除几个表(基本上是在“python manage.py sqlclear appname”中执行 sql 命令)。我该怎么做?

【问题讨论】:

  • 我有一段时间没有使用 Heroku,但您不应该能够获得 DB CLI 访问权限吗?从那里,您只需执行 SQL。
  • South 还不够吗?
  • 我实际上遇到了这个问题,因为我搞砸了我的 South 配置..

标签: django heroku


【解决方案1】:

嘿,这很简单。您应该只创建一个可以处理原始 SQL 的视图函数。我昨天才这样做,试图解决 postgres 唯一索引同步问题。

Views.py: 将其映射到某个 URL,然后在浏览器中访问该 url,该函数将执行。

from django.db import connection, transaction

def dropTable(request):

 cursor = connection.cursor()

 cursor.execute(“DROP TABLE WHATEVER”) //custom raw SQL goes here

 success = simplejson.dumps({‘success’:’success’,}) //I do this as a success message

 return HttpResponse(success, mimetype=’application/json’) //you'll need an import or two for the json stuff to work

【讨论】:

  • 我认为您还应该在上面的答案中添加将更改提交到数据库的语句:transaction.commit_unless_managed()
【解决方案2】:

我在看到这篇文章时遇到了同样的问题,我认为有一种更简单的方法可以解决这个问题。 Heroku 推出了PostgreSQL Studio,这是一个基于 Web 的 PSQL UI,允许您查看 DB 和 PSQL 命令。

连接到数据库后,只需打开 worksheet 并运行

TRUNCATE TABLE table_name;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-17
    • 2023-03-20
    • 2012-07-08
    • 1970-01-01
    • 2018-04-08
    • 2016-09-10
    • 2012-07-08
    • 2021-12-19
    相关资源
    最近更新 更多