Django既存のデータベースを使用してmodelsを生成
2461 ワード
通常、Djangoサービスを確立し、Djangoのmodelsを介してデータベースを生成します.しかし、既存のデータベースからDjangoのmodelsを生成する逆操作が必要になる場合があります.たとえば、現在のデータベースに対してDjangoを使用してRESTのインタフェースを作成する必要があります.
1 Djangoデータベース接続パラメータの構成
新しいDjanoプロジェクト、app(blogappという仮定)を作成します.settings.pyでデータベースの接続パラメータを設定し、DjangoとMySQLデータベースの接続を参照します.
2データベースからモデルを生成する
まず、
blogappの下のmodelsなどのmodelsを指定するとします.
3 modelsでの調整
4 migrateの場合、
最初のデータ移行migrateでは、
5テスト効果
blog/admin.pyにmodelsを登録します.
adminを使用して添削を行い、MySQLでデータベース操作が成功したことを確認します.
6
How to redo a migration on django 1.8 after using --fake
コメント:
最後に、Djangoの全体的なグローバルmigrateは、変化が見つからない場合があります.
やはりappを制定してmigrateを行うことを提案します
リファレンス
公式ドキュメントの最新ガイド:
公式英語ドキュメント:Auto-generate the models
公式英語ドキュメント:inspectdb
公式英語ドキュメント:migrate-fake-initial
Djangoと古いデータベースを統合
中国語の紹介:
既存のデータベース統合django orm(Database to Models)
データベースからdjangoを逆生成するmodels
既存のデータベースでDjangoプロジェクトを作成する方法
Django既存のデータベースに基づいてモデルを構築
Django Book生成したModelsをクリーンアップするためのいくつかの提案
既存のデータベースとアプリケーションの統合
Django migrateに関する2つのパラメータ
django migrationの使用
--fake-initial vs --fake in Django migration?
1 Djangoデータベース接続パラメータの構成
新しいDjanoプロジェクト、app(blogappという仮定)を作成します.settings.pyでデータベースの接続パラメータを設定し、DjangoとMySQLデータベースの接続を参照します.
2データベースからモデルを生成する
まず、
inspectdb
でmodels.py
を生成する必要があります.主なコマンドは$ python manage.py inspectdb
blogappの下のmodelsなどのmodelsを指定するとします.
$ python manage.py inspectdb > blogapp/models.py
3 modelsでの調整
managed = True
自分が必要とするモデルについては,後でCRUD添削改ざんを行う必要がある場合はMetaにmanaged = True
を設定する必要がある.class PostsPost(models.Model):
title = models.CharField(max_length=150)
content = models.TextField()
timestamp = models.DateTimeField()
updated = models.DateTimeField()
class Meta:
managed = True
db_table = 'posts_post'
4 migrateの場合、
--fake-initial
を使用最初のデータ移行migrateでは、
--fake-initial
パラメータを使用する必要があります.データベースがすでに存在するため、--fake
を持たないとエラーが発生し、移行が成功しません.$ python manage.py makemigrations
$ python manage.py migrate --fake-initial
5テスト効果
blog/admin.pyにmodelsを登録します.
from django.contrib import admin
from .models import PostsPost
admin.site.register(PostsPost)
adminを使用して添削を行い、MySQLでデータベース操作が成功したことを確認します.
6
--fake
を使用した後、modelsを修正する必要があります—fake
ではなく、データベース構造を実際に変更する必要がある場合は、python manage.py migrate --fake core 0003
python manage.py migrate core
How to redo a migration on django 1.8 after using --fake
コメント:
最後に、Djangoの全体的なグローバルmigrateは、変化が見つからない場合があります.
$ python manage.py migrate
やはりappを制定してmigrateを行うことを提案します
$ python manage.py migrate your_app
リファレンス
公式ドキュメントの最新ガイド:
公式英語ドキュメント:Auto-generate the models
公式英語ドキュメント:inspectdb
公式英語ドキュメント:migrate-fake-initial
Djangoと古いデータベースを統合
中国語の紹介:
既存のデータベース統合django orm(Database to Models)
データベースからdjangoを逆生成するmodels
既存のデータベースでDjangoプロジェクトを作成する方法
Django既存のデータベースに基づいてモデルを構築
Django Book生成したModelsをクリーンアップするためのいくつかの提案
既存のデータベースとアプリケーションの統合
Django migrateに関する2つのパラメータ
—fake-initial
と—fake
:django migrationの使用
--fake-initial vs --fake in Django migration?