34

djangoコマンドはありますか

A.すべてのテーブルを削除します

B.すべてのテーブルのすべてのデータを削除する

C.モデルで定義されているようにすべてのテーブルを作成しますか?

今は見つかりません!

そして、コマンドとは、次のような小さなことを意味します

runserver

4

7 に答える 7

39

A.すべてのテーブルを削除します

manage.py sqlclearすべてのテーブルを削除するSQLステートメントを出力します

B.すべてのテーブルのすべてのデータを削除する

manage.py flushsyncdbが実行された直後の状態にデータベースを返します

C.モデルで定義されているようにすべてのテーブルを作成しますか?

manage.py syncdbテーブルがまだ作成されていないINSTALLED_APPS内のすべてのアプリのデータベーステーブルを作成します。

すべてのコマンドのリファレンスについては、次のページを参照してください:https ://docs.djangoproject.com/en/dev/ref/django-admin/

しかし、誰かがすでに述べたように、あなたは間違いなく南を使うことを検討するべきです。これは、データベースを管理するための最良の方法です。

注意:syncdbDjango 1.7以降、移行を優先して非推奨になりました。

于 2012-05-15T18:11:57.653 に答える
14

データベースにクライアントライブラリがインストールされている場合は、次のコマンドを実行できます。

python manage.py sqlflush | python manage.py dbshell

これはテーブルを削除しませんが、それらを切り捨てます。

すべてを一度に実行するコマンドはありませんが、この「ワンライナー」はすべてのテーブルを削除してから再作成します。これらのユーティリティをシェルで提供するシステムで実行している場合にのみ機能します。

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

于 2012-05-15T19:41:48.060 に答える
10

すべてのテーブルを一度に削除することも、削除することもできません。どちらmanage.py sqlclearもパラメータが必要です。manage.py resetappname

Django Extensionsを確認する必要があります。これにより、manage.py reset_dbの多くの便利な管理コマンドにアクセスできます。

于 2012-10-15T11:58:50.550 に答える
4

django-southの使用をお勧めします。これにより、フィールドを追加するときだけでなく、フィールド/モデルを削除するときにも、モデルをデータベースに同期できます。私はそれがDjangoサイトを構築するための不可欠なコンポーネントであると本当に思っています。インストールすると、次のようなコマンドを実行できます。

./manage.py移行アプリゼロ

詳細については、 http: //south.aeracode.org/docs/about.htmlをご覧ください。

于 2012-05-15T17:43:39.597 に答える
4

そして、django 1.5+のすべてのテーブルを削除するためのよりシンプルなワンライナー:

python2 manage.py sqlflush | sed 's/TRUNCATE/DROP TABLE/g'| python2 manage.py dbshell
于 2013-12-31T20:30:52.793 に答える
2

テーブルを落とすことができました。走る

python manage.py sqlclear appname

与えられたコマンドに注意してください。次に実行します

python manage.py dbshell

最初のステップで与えられたコマンドを追加します。1行ずつ。完了したら、「。exit」と入力します(SQlite3の場合)。DBを再同期すると、準備が整います。確かに、次のテーブルを確認してください。

python manage.py shell
>>> from yourapp import yourclasses
>>> yourviews.objects.all()

[]を返す必要があります。これがお役に立てば幸いです。

于 2012-08-06T08:27:35.633 に答える
0

AはBを意味しますよね?

Aについては、Djangoのmanage.pyCLIを使用してデータベースからすべてのテーブルを削除する方法を参照してください。

Cの場合、

python manage.py syncdb

もちろん、スマートなデータ移行については、@ bentoが述べたことを使用します:django-south

于 2012-05-15T17:45:50.930 に答える