python manage.py flush
從整個項目中刪除數據。我希望能夠做到python manage.py flush agivenapp
我該怎麼做?沖洗只是一個應用程序不是整個項目
回答
sqlclear管理命令可以幫助...
Usage: ./manage.py sqlclear [options] <appname appname ...>
Prints the DROP TABLE SQL statements for the given app name(s).
爲PostgreSQL裏你可以這樣做:
./manage.py sqlclear myapp | psql dbname
UPDATE 與遷移和Django的1.7+應用:
python manage.py migrate <app> zero
我還需要只能清空某些應用程序。我想出了這個解決方案。這適用於MySQL。可能需要爲其他數據庫更改代碼。
主要的想法是不做整個'沖水'。相反,我只用'sqlflush'的grep來得到我想要的。您也可以將所有內容放在一行中。爲了便於閱讀,我將其分開。
BEGIN="BEGIN; SET FOREIGN_KEY_CHECKS = 0;"
TRUNCATE=`./manage.py sqlflush |egrep " \\\`app1_| \\\`app2_"`
END="SET FOREIGN_KEY_CHECKS = 1; COMMIT;"
echo $BEGIN $TRUNCATE $END | ./manage.py dbshell
從Django版本1.6開始,'TRUNCATE'命令列出**在同一行上的所有表**,因此您在此處使用的腳本將**截斷所有內容**。也許早期的Django版本爲每個表格提供了一個'TRUNCATE',但現在不再是這種情況。 – Louis 2014-12-19 13:17:03
更高版本的Django的嘗試在運行Django shell:
from django.apps import apps
my_app = apps.get_app_config('my_app_name')
my_models = my_app.get_models()
for model in my_models:
model.objects.all().delete()
更多的apps
模塊上都可以找到here。 當然,您可以使用管理infrastructure將其自動轉換爲管理命令。
更容易。在1.10.4上工作得很好。謝謝。如果移民衝突,這是最好的替代方案。 – Yash 2016-12-15 13:59:37
您可以用migrate
命令,它有兩個位置參數做到這一點:
Updates database schema. Manages both apps with migrations and those without.
positional arguments:
app_label
App label of an application to synchronize the state.
migration_name
Database state will be brought to the state after that migration. Use the name "zero" to unapply all migrations.
所以運行後跟一個遷移將清除只爲給定的應用程序中的數據遷移爲零。
$ python manage.py migrate ${APPNAME} zero
$ python manage.py migrate ${APPNAME}
- 1. 爲什麼每個應用程序只有一個model.py,而不是整個項目中只有一個model.py?
- 2. C#是有一個RichTextBox沖洗功能
- 3. WPF將主題應用到特定項目而不是整個應用程序
- 4. 是一個完整的項目只有一個MongoDB集合
- 5. 黑莓scoll只browserfield,不是整個應用程序佈局
- 6. 如何使用Doolrine沖洗一個實體而不沖洗另一個實體?
- 7. AJAX調用只發送最後一個項目,而不是整個陣列
- 8. 是一個ASP.Net的WebAPI項目,該項目只是調用遠程服務
- 9. 推動整個項目的不只是改變了使用ftploy
- 10. 你是否控制了個人應用程序或整個項目或兩者?
- 11. 兩個Eclipse Android項目:一個是一個小部件,一個是普通的應用程序。如何連接?
- 12. 每個應用程序是否只有一個共享首選項對象?
- 13. Xcode:在項目中查找不只是整個單詞?
- 14. 在整個項目中只使用一個模型是很好的
- 15. 使整個symfony應用程序只讀
- 16. jQuery刪除多個項目,而不是隻有一個
- 17. 選擇多個項目,而不只是一個(angularJs)
- 18. 我如何知道一個項目是否是MFC應用程序
- 19. IIS6虛擬目錄不是一個應用程序
- 20. 想從通用應用程序降級到只是一個ipad應用程序
- 21. 使用TDD(BDD)開發整個應用程序(不是一個類)?
- 22. 兩個不同的項目,一個是Redis,一個是MongoDB?
- 23. Python 3.x:更新一個項目,而不是每次複製整個項目
- 24. 一個XCode項目,兩個目標,兩個應用程序(iPhone/iPad)不通用應用程序
- 25. 運行遠程應用程序,但不是整個桌面
- 26. 是一個web2py項目,通常由多個應用程序組成?
- 27. 設置文化只有一個視圖,而不是整個程序
- 28. Xamarin的Android:整個應用程序的更改姓名,不只是標籤
- 29. 整個應用程序的一個UINavigationcontroller?
- 30. 快遞服務不是整個靜態目錄只是index.html的
不幸的是,sqlclear似乎沒有可用於遷移應用程序(Django的1.8)... 「CommandError:應用程序‘DB’具有遷移只有sqlmigrate和sqlflush命令可以當一個應用程序使用有移民。「 – 2016-01-23 08:15:41
適用於遷移和Django 1.7+的應用程序:python manage.py migrate zero –
Jerzyk
2016-02-01 01:04:31
python manage.py migrate zero後面跟着python manage.py migrate 爲我工作過......我錯誤地認爲我需要重新應用遷移? –
Foon
2017-08-26 02:14:58