11

レールで書かれたアプリのユーザー管理インターフェイスを構築しようとしています.djangoを使用しています. 管理するコンテンツを含む、Rails アプリのレガシー データベースが既にあります。この新しい Django アプリのユーザー管理には、django-admin を使用したいと考えています。しかし、私が持っているレガシー データベースの構造を変更したくありません。syncdb を実行すると、django がレガシー データベースの下にすべてのテーブルを作成することがわかりましたが、これは私が望んでいるものではありません。今のところ行ったことは、settings.py で複数のデータベースを定義したことです。レガシー データベースはデフォルトではありません。そうすることで、django はすべてのユーザー/認証関連のテーブルをデフォルト データベースに作成し、レガシー データベースの構造が変更されるのを防ぎました。しかし、他にもっと良い方法があるかどうか知りたいです。

ありがとう。

4

2 に答える 2

6

認証テーブルについて話します。2 つのデータベースを宣言できます。django アプリのメイン データベース (「デフォルト」) には、django.contrib.auth.models モデルのみが含まれます。

あなたの他のものは検査されます。生成されたモデルの管理画面でデータベース名を設定すると、魔法のように機能するはずです。

複数のデータベースを処理して構成する方法: https://docs.djangoproject.com/en/dev/topics/db/multi-db/

複数のデータベースを処理するために ModelAdmin クラスを指定する方法: https://docs.djangoproject.com/en/dev/topics/db/multi-db/#exposed-multiple-databases-in-django-s-admin-interface

于 2012-04-23T07:27:01.630 に答える
2

2 番目のデータベースを作成する必要はありません。Django では、既存のテーブルからモデルを生成できます。ドキュメントには、既存のデータベースを統合するためのハウツーがあります: https://docs.djangoproject.com/en/dev/howto/legacy-databases/

要約すると、inspectdb管理コマンドを使用して、Django に既存のデータベースに基づいたモデルを提供させます。権限やコンテンツ タイプなどの Django 固有のモデルについては、引き続き syncdb が必要です。

于 2012-04-23T07:11:29.670 に答える