由于某些原因,我想对模型进行重大更改。我想以某种方式重做整个设计,但是Django迁移实现通过不更新模型库来牢记以前的设计。
让我快速展示一下我之前所拥有的,然后现在所拥有的。
app1.TopLevel
|_ app1.IntermediateLevel
|_ app2.LowLevel
Run Code Online (Sandbox Code Playgroud)
我有3个这样的模型,那么现在我想把这个设计切成更适合我当前项目的模型,例如
app2.TopLevel
|_ app2.LowLevel
Run Code Online (Sandbox Code Playgroud)
我的主要更改是,首先,我不再需要中间模型,其次,我不需要顶部保持app1.TopLevel这种方式。
我的数据没有问题(我进行了多次迁移,有些是使用Python将数据放入临时字段中,然后稍后将数据放回到正确的字段中并删除那些临时字段)。
我的问题是,当我们创建继承的模型时,我们要定义其基础;
app1.TopLevel
|_ app1.IntermediateLevel
|_ app2.LowLevel
Run Code Online (Sandbox Code Playgroud)
在那种情况下,我会得到类似
类“ LowLevel”中的本地字段“ toplevel_ptr”与基类“ IntermediateLevel”中类似名称的字段发生冲突
我阅读了官方文档和源代码(用于迁移),但到目前为止,我什么都没有看到。是否可以告知迁移系统我们更改了模型库(其父库)?
否则,我唯一的解决方案是创建新模型,运行python迁移以将数据从旧模型复制到新模型。然后删除旧模型并重命名新模型,以获得我想要的名称。
django ×1