2015-10-28 177 views
8

在我的django應用程序(django 1.8)中,我使用兩個數據庫,一個是'default',它是MySQL,另一個是無模式的只讀數據庫。 我有兩個型號被訪問這個數據庫,我想從數據和架構遷移永久排除這兩種模式:django:從遷移中排除模型

  • makemigrations應該永遠不會發現任何變化,併爲他們創造
  • 遷移migrate不應該抱怨缺少遷移該應用

到目前爲止,我已經嘗試不同的東西,都沒有成功:

  • 使用兩種型號的managed=False元選項
  • 增加了一個allow_migrate方法,我的路由器返回False兩種型號

沒有人有這種情況下如何才能實現的例子嗎? 感謝您的幫助!

+10

一般'管理= FALSE'是這樣的。它有什麼問題? – Ivan

+0

包括你完成的代碼部分也是因爲@Ivan表示它是這樣的 –

+0

我相信這篇文章回答你的問題:http://stackoverflow.com/questions/33820715/how-to-disable-migration-from-one - 模型的應用程序在Django –

回答

1

到目前爲止,我已經嘗試不同的東西,都沒有成功:

  • 使用的管理=假的Meta選項兩款車型

那個選項(managed = False屬性在模型的元選項)似乎符合要求。

如果不是,則需要擴展問題以說明managed = False不適用於您的模型。

0

我想,我有一個makemigrations的問題。它假裝在managed = False模型上進行遷移,但沒有爲此模型生成的SQL代碼

這是我的示例,型號爲Smdocumets非託管,並且沒有生成SQL代碼。

蟒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 

蟒manage.py sqlmigrate監視器0005

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