我重命名了一个模型。如何恢复现在丢失的数据库对象?

时间:2011-04-07 04:43:43

标签: django django-models

我的模特是foo.bar.MyModel。现在是boo.far.MyModel。架构是一样的。

boo.far.MyModel.objects.all()现在显然是空的。有没有办法在数据库中运行对象并更改与之关联的类?某种类型的搜索和替换?这不是很多对象,这只是一个测试数据库,所以我希望手工完成。不想使用南方或类似的东西。我意识到我也可以重新创建旧的包/类然后迁移,但我很感兴趣,如果我可以解决这个问题。

编辑:我在Google App Engine上使用非rel后端

1 个答案:

答案 0 :(得分:2)

您只需在数据库中重命名模型的表即可。表名是根据app标签和模型的类名构造的,因此MySQL查询是:

RENAME TABLE bar_mymodel TO far_mymodel;

第二个选项是使用“db_table”模型选项覆盖默认表名:

class MyModel(models.Model):
    ....
    class Meta:
        db_table = 'bar_mymodel'