我在应用程序中定义了一些模型,称之为“博客”。
djangoproject
/blog
models.py
我现在想要更改模型位置,例如将它们放在这里:
djangoproject
/blog
xxx
/all_models
models.py
从代码的角度来看,这非常简单,但我猜数据库会出现问题,因为Django和South创建的所有表现在都称为blog_posts
blog_comments
,Django依赖在这个命名约定上,我不想丢失已存在于数据库中的数据。
怎么做?
答案 0 :(得分:4)
最简单的事情是不要费心去更改表格,而是代码。在每个模型的Meta
类中,放置声明db_table = "blog_tablename"
,Django会毫无问题地找到它们。
答案 1 :(得分:1)
您可以通过两种方式解决此问题。 第一个也是更容易的是在每个模型的Meta类中提供db_table。另一种是创建迁移以应用更改。
据我所知,南方不支持表重命名,所以你应该以三向迁移的方式进行:
您可以阅读更多关于第二种方式的in south docs