2017-05-16 2 views
0

DBを照会してレポートを返すDjangoサイトを立ち上げようとしています。インポートする必要のある5つのレガシーDBがあります。私はデフォルトとして1つを設定し、inspectdbを実行しました。これは正しくインポートされ、現在はすべて設定されています。私は次にinspectdbを実行してモデルを手に入れましたが、管理パネルのリンクをクリックするとエラーが表示されます。私のデフォルトのdb名はapp2で、2番目のdb imはcucmです。そこにエラーがapp2.cucmにはDBがないと言われています - どうしてジャンゴはapp2.cucmに行くのですか? settings.pyファイルDjango:複数のレガシーデータベースをインポートできません

DATABASES = { 
     'cucm': { 
      'NAME': 'CUCM' 
      'ENGINE': 'django.db.backends.mysql', 
      'USER': 'user' 
      'PASSWORD': 'PASSWORD' 
      'HOST': 'IPADDRESS' 
      'PORT': '111111' 
     }, 

'default': { 
    'NAME': 'app2', 
    'ENGINE': 'django.db.backends.mysql', 
    'USER': 'user', 
    'PASSWORD': 'PASSWORD', 
    'HOST': 'IPADDRESS', 
    'PORT': '1111', 
    }, 
} 

フル・エラーがそうのようになります。

パス名 '/root/IPNV/django-test/src/reports/models.py' は、この 時計の0x7fbe145cef50で> dir = False>がおそらく変更されており、 を更新できなかったため、これ以上信頼することはできません。これを修正するには、監視対象の親ディレクトリ間でのみディレクトリ/ファイルを移動するエラー があります。この場合は です。 '/ root/IPNV/django-test/src/reports'に時計を入れてください。

私は文法が完璧ではないことを知っています。すべてのDBが同じホスト上にあることに注意する価値があります。だから、すべてのDBのすべてのフィールドは、名前

除いて同一である。これは、エラーDjangoの管理パネル形成: 例外値を:

(1146年、「テーブル 『app2.CDR』が存在しません」)

私は問題がルーティングにあると思います。 'CDR'はcucm dbのapp2ではないテーブルです。私はdbルーティングをまだ作成していません。私はデフォルトがうまくいくことを期待していました

+0

DATABASESの設定と表示される完全なエラーとトレースバックを表示してください。 –

+0

ここにsettings.pyファイルの設定があります – Joe

答えて

0

多分それはあなたがdbをどのように呼んでいるかと関係しています。複数のdbsを持っている場合は、どちらを使用しているかを明示的に言わなければなりません。たとえば、モデルが人物だった場合は、次のようになります。

Person.objects.using(dbname) 
+0

ええ、それは問題のように聞こえますが、どこのコード行に入るのですか? – Joe

+0

dbにクエリを行う場所はどこにでもあります。したがって、Person Model内のすべての人のリストを出力し、db1を使用したいという見解があった場合は、Person.objects.using(db1).all()と言うだけです。 dbsを切り替えるには、そのビューのフォームを使用して、ユーザー入力をusing呼び出しに渡すことができます。 – mewpeter

+0

もっと良い方法があるはずです。管理パネルで作業しているので、私の意見は実際にはまだ作成されていません。すべてが 'デフォルト' dbで完璧に動作します。 – Joe

関連する問題