我试图使用两组夹具提供初始数据。第一组夹具格式如下。
{
"pk": 1,
"model": "data.Person",
"fields": {
"full": "Anna-Varney",
"num": "I",
"short": "Anna-Varney"
}
},
我首先将它加载进去,大约需要1-2个小时才能成功加载。我的电影.json格式如下:
{
"pk": 1,
"model": "data.Film",
"fields": {
"date": "2005-08-01",
"rating": 8.3,
"actors": [
[
"Anna-Varney"
]
],
"name": "Like a Corpse Standing in Desperation (2005) (V)"
}
},
加载电影夹具花费了极长的时间,目前已经进行了20个小时,我的计算机在运行时变得缓慢。两个月前,我加载了类似的固定装置,除了我使用MySQL(现在我正在使用Postgres),并且我已经在我的模型中添加了日期字段。过去,当我将电影固件加载到旧的MySQL数据库中时,只需要2-3个小时。是否有一种方法可以确定固件加载部分所处的步骤或是否已冻结?
参考我的模型:
class PersonManager(models.Manager):
def get_by_natural_key(self, full):
return self.get(full=full)
class Person(models.Model):
objects = PersonManager()
full = models.CharField(max_length=100,unique = True)
short = models.CharField(max_length=100)
num = models.CharField(max_length=5)
def natural_key(self):
return (self.full,)
def __unicode__(self):
return self.full
class Film(models.Model):
name = models.TextField()
date = models.DateField()
rating = models.DecimalField(max_digits=3 , decimal_places=1)
actors = models.ManyToManyField('Person')
def __unicode__(self):
return self.name
full
上创建索引。自然键处理必须为每部电影找到正确的“Person”实例,因此它一遍又一遍地在full
上搜索。 - Peter DeGlopperistartswith
查询如何被发送到Postgres。 - Peter DeGlopper