これを見てください:
$ pypy ./manage.py syncdb
/usr/lib64/pypy-2.4.0/site-packages/Django/core/management/commands/syncdb.py:24: RemovedInDjango19Warning: The syncdb command will be removed in Django 1.9
warnings.warn("The syncdb command will be removed in Django 1.9", RemovedInDjango19Warning)
(cut)
クイックGoogle検索 を実行しましたが、答えが見つかりませんでした-syncdb
の代わりに何を使用すればよいですか?
syncdb
は、 Django 1.7 で導入された 移行システム により非推奨です。
これで、makemigrations
を使用して、変更をtrackできます。これにより、モデルの変更がpythonコードに変換され、別のデータベースにデプロイ可能になります。データベースにさらに変更を加える必要がある場合は、 data migrations を使用できます。
移行を作成したら、applyする必要があります:migrate
。
したがって、syncdb
を使用する代わりに、makemigrations
を使用してからmigrate
を使用する必要があります。
モデルで何かを変更した後の開発のワークフロー:
./manage.py makemigrations
./manage.py migrate
本番システムでは:
./manage.py migrate
ボーナス:変更ごとにmigrate
を実行する必要はありません。まだ適用されていない複数の変更がある場合、Djangoはそれらを正しい順序で実行します。
必ず 移行システム を使用してください。これにより、models.py
の変更を追跡し、データベースの移行を作成できます。移行システムは、コマンド makemigrations
を使用して移行を作成し、 migrate
を使用してデータベースを移行します。
何らかの理由でsyncdb
と同じ方法でデータベースを作成する必要がある場合は、migrate
が同じように機能するコマンドフラグがあります。あなたが本当にそれを必要とし、あなたが何をしているかを知っている場合にのみ、これを行うべきです。たとえば、選択した継続的インテグレーションシステムのために空のデータベースを作成します。
python manage.py migrate auth
# performs migrations for auth and contenttypes contrib apps
python manage.py migrate --run-syncdb
# creates the rest of the database
Django 1.9.1でテスト済み。
Django 1.7で導入されたmakemigrations
およびmigrate
コマンドを使用する必要があります
syncdb
には、データベースの移行に問題があります。そのため、Django 1.7 makemigrations
およびmigrate
が導入された後。 Django 1.9 syncdb
では廃止されました。試してみる
1。 python manage.py makemigrations
dbの変更を検出し、移行フォルダー2内に.py
ファイルを1つ作成します。python manage.py migrate
はデータベースに移行を適用します