在Django South迁移中删除模型的'table'并重新创建

3 投票
1 回答
1444 浏览
提问于 2025-04-17 00:24

我有一个用自定义 SQL 创建的 Django 模型。其实它只是一个 SQL 视图,并不是真正的表。我们使用 Django South 来管理数据库的迁移。我已经修改了视图的 SQL 定义,现在想为这个变化写一个迁移。

因为这只是一个 SQL 视图,如果我删除这个视图,然后再“重新创建”它(通过运行自定义 SQL),那么这个视图就会更新为新的定义,而且我们显然不会丢失任何数据。那么我该如何在 Django South 中做到这一点呢?

在 Django South 中删除表或视图很简单,我可以直接执行一些原始 SQL db.execute*("DROP VIEW view_name;"),但有没有更好的方法呢?

有没有办法从一个对象重新创建表?类似于 orm.MyTable.recreate_this_table(),这样它就能使用自定义 SQL 文件?

1 个回答

2

关于如何在Django/South中处理数据库视图,似乎有一些很不错的信息可以参考。至于你问题的最后部分,我不太明白你想要做什么……

撰写回答