2012-05-26 36 views
2

我看到如何在Django中的heroku中刪除整個數據庫(Destroying a Postgres DB on Heroku)。但是,我想刪除幾個表(主要是在'python manage.py sqlclear appname'中執行sql命令)。我該怎麼做呢?如何在Heroku中爲Django應用程序刪除單個表格

+0

我沒有使用Heroku的一段時間,但你不應該能夠獲得DB CLI的訪問權限?從那裏,你只需要執行SQL。 –

+0

是不是[南](http://south.readthedocs.org/en/latest/index.html)夠了? –

+0

我其實是有這個問題,因爲我搞砸了我的南配置.. – fangsterr

回答

4

嘿,這很簡單。您應該創建一個視圖函數,您可以在其中處理原始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 
+2

我想你還應該在上面的回答中添加提交更改到數據庫的聲明:'transaction.commit_unless_managed()' –

1

我有同樣的問題,當我遇到這個帖子來了,我覺得這是解決此問題的一個簡單的方法。 Heroku推出了PostgreSQL Studio,一個基於Web的PSQL UI,可以讓你查看你的數據庫和PSQL命令。

一旦你連接到你的數據庫,只需打開worksheet和運行

TRUNCATE TABLE table_name; 
相關問題