2015-10-28 191 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"; 
...