2015-10-28 85 views
8

私のdjangoアプリケーション(django 1.8)では、MySQLである2つのデータベース 'default'と、スキーマレスの読み取り専用データベースであるもう1つのデータベースを使用しています。 私は、このデータベースにアクセスしている二つのモデルをした、と私は、データとスキーマの移行から恒久的にこれらの二つのモデルを除外したいと思います:django:マイグレーションからモデルを除外する

  • makemigrationsは、すべての変更を検出していない、と
  • 彼らのためにマイグレーションを作成するんmigrateはまったく成功せず、

はこれまでのところ、私は別のものを試してみたそのアプリのための移行を行方不明に文句を言うことはありません:

  • は、両方のモデル

ためFalseを返す私のルータへallow_migrateメソッドを追加した両方のモデルにmanaged=Falseメタオプションを使用する誰もがこのシナリオを実現することができる方法の例を持っていますか? ご協力いただきありがとうございます!

+10

は通常、 '= false'をが方法です管理します。何が問題なの? – Ivan

+0

には@Ivanが示唆しているように、 –

+0

というコードパーツが含まれています。私はこの投稿があなたの質問に答えると信じています:http://stackoverflow.com/questions/33820715/how-to-disable-migration-from-one -ad-app-in-djangoのモデル –

答えて

1

はこれまでのところ、私はまったく成功せず、別のものを試してみた:

  • は、両方のモデル

そのオプションで管理= Falseのメタオプションを使用(managed = Falseモデルのメタオプションの属性)が要件を満たしているようです。

もしそうでなければ、質問を展開してmanaged = Falseが仕事をしていないモデルの特別なことを正確に伝える必要があります。

0

私は、マケミゲーションに問題があると考えました。 managed = Falseモデルでマイグレーションするふりをしますが、このモデル用に生成されたSQLコードはありません

これは私の例です。モデルSmdocumetsは管理されておらず、SQLコードは生成されていません。

のpython manage.pyのmakemigrations

Migrations for 'monitor': 
    monitor\migrations\0005_auto_20171102_1125.py 
    - Create model Smdocuments 
    - Add field sid to db 
    - Alter field name on db 

のpython manage.py sqlmigrateモニタ0005

BEGIN; 
-- 
-- Create model Smdocuments 
-- 
-- 
-- Add field sid to db 
-- 
ALTER TABLE "monitor_db" RENAME TO "monitor_db__old"; 
...