mirror of
git://git.yoctoproject.org/layerindex-web.git
synced 2025-07-19 12:49:01 +02:00
rrs: Add database indexes in models.py
Add database indexes in models.py also create migration for upgrade the current database in order to improve performance. Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
This commit is contained in:
parent
7c7f798459
commit
945b750c23
|
@ -0,0 +1,213 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from south.utils import datetime_utils as datetime
|
||||
from south.db import db
|
||||
from south.v2 import SchemaMigration
|
||||
from django.db import models
|
||||
|
||||
|
||||
class Migration(SchemaMigration):
|
||||
|
||||
def forwards(self, orm):
|
||||
# Adding index on 'RecipeUpstream', fields ['status']
|
||||
db.create_index('rrs_recipeupstream', ['status'])
|
||||
|
||||
# Adding index on 'RecipeUpstream', fields ['date']
|
||||
db.create_index('rrs_recipeupstream', ['date'])
|
||||
|
||||
# Adding index on 'RecipeUpstream', fields ['no_update_reason']
|
||||
db.create_index('rrs_recipeupstream', ['no_update_reason'])
|
||||
|
||||
# Adding index on 'RecipeUpstream', fields ['type']
|
||||
db.create_index('rrs_recipeupstream', ['type'])
|
||||
|
||||
# Adding index on 'RecipeUpgrade', fields ['commit_date']
|
||||
db.create_index('rrs_recipeupgrade', ['commit_date'])
|
||||
|
||||
# Adding index on 'RecipeUpgrade', fields ['author_date']
|
||||
db.create_index('rrs_recipeupgrade', ['author_date'])
|
||||
|
||||
# Adding index on 'Release', fields ['start_date']
|
||||
db.create_index('rrs_release', ['start_date'])
|
||||
|
||||
# Adding index on 'Release', fields ['end_date']
|
||||
db.create_index('rrs_release', ['end_date'])
|
||||
|
||||
# Adding index on 'RecipeMaintainerHistory', fields ['date']
|
||||
db.create_index('rrs_recipemaintainerhistory', ['date'])
|
||||
|
||||
# Adding index on 'Milestone', fields ['start_date']
|
||||
db.create_index('rrs_milestone', ['start_date'])
|
||||
|
||||
# Adding index on 'Milestone', fields ['end_date']
|
||||
db.create_index('rrs_milestone', ['end_date'])
|
||||
|
||||
|
||||
def backwards(self, orm):
|
||||
# Removing index on 'Milestone', fields ['end_date']
|
||||
db.delete_index('rrs_milestone', ['end_date'])
|
||||
|
||||
# Removing index on 'Milestone', fields ['start_date']
|
||||
db.delete_index('rrs_milestone', ['start_date'])
|
||||
|
||||
# Removing index on 'RecipeMaintainerHistory', fields ['date']
|
||||
db.delete_index('rrs_recipemaintainerhistory', ['date'])
|
||||
|
||||
# Removing index on 'Release', fields ['end_date']
|
||||
db.delete_index('rrs_release', ['end_date'])
|
||||
|
||||
# Removing index on 'Release', fields ['start_date']
|
||||
db.delete_index('rrs_release', ['start_date'])
|
||||
|
||||
# Removing index on 'RecipeUpgrade', fields ['author_date']
|
||||
db.delete_index('rrs_recipeupgrade', ['author_date'])
|
||||
|
||||
# Removing index on 'RecipeUpgrade', fields ['commit_date']
|
||||
db.delete_index('rrs_recipeupgrade', ['commit_date'])
|
||||
|
||||
# Removing index on 'RecipeUpstream', fields ['type']
|
||||
db.delete_index('rrs_recipeupstream', ['type'])
|
||||
|
||||
# Removing index on 'RecipeUpstream', fields ['no_update_reason']
|
||||
db.delete_index('rrs_recipeupstream', ['no_update_reason'])
|
||||
|
||||
# Removing index on 'RecipeUpstream', fields ['date']
|
||||
db.delete_index('rrs_recipeupstream', ['date'])
|
||||
|
||||
# Removing index on 'RecipeUpstream', fields ['status']
|
||||
db.delete_index('rrs_recipeupstream', ['status'])
|
||||
|
||||
|
||||
models = {
|
||||
'layerindex.branch': {
|
||||
'Meta': {'object_name': 'Branch'},
|
||||
'bitbake_branch': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
|
||||
'short_description': ('django.db.models.fields.CharField', [], {'max_length': '50', 'blank': 'True'}),
|
||||
'sort_priority': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
|
||||
'updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now', 'auto_now': 'True', 'blank': 'True'})
|
||||
},
|
||||
'layerindex.layerbranch': {
|
||||
'Meta': {'object_name': 'LayerBranch'},
|
||||
'actual_branch': ('django.db.models.fields.CharField', [], {'max_length': '80', 'blank': 'True'}),
|
||||
'branch': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['layerindex.Branch']"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'layer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['layerindex.LayerItem']"}),
|
||||
'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
|
||||
'vcs_last_commit': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
|
||||
'vcs_last_fetch': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
|
||||
'vcs_last_rev': ('django.db.models.fields.CharField', [], {'max_length': '80', 'blank': 'True'}),
|
||||
'vcs_subdir': ('django.db.models.fields.CharField', [], {'max_length': '40', 'blank': 'True'})
|
||||
},
|
||||
'layerindex.layeritem': {
|
||||
'Meta': {'object_name': 'LayerItem'},
|
||||
'classic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'description': ('django.db.models.fields.TextField', [], {}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'index_preference': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
||||
'layer_type': ('django.db.models.fields.CharField', [], {'max_length': '1'}),
|
||||
'mailing_list_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '40'}),
|
||||
'status': ('django.db.models.fields.CharField', [], {'default': "'N'", 'max_length': '1'}),
|
||||
'summary': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
|
||||
'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
|
||||
'usage_url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
|
||||
'vcs_url': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'vcs_web_file_base_url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
|
||||
'vcs_web_tree_base_url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
|
||||
'vcs_web_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
|
||||
},
|
||||
'layerindex.recipe': {
|
||||
'Meta': {'object_name': 'Recipe'},
|
||||
'bbclassextend': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
|
||||
'bugtracker': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}),
|
||||
'depends': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
||||
'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'filepath': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
|
||||
'homepage': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'layerbranch': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['layerindex.LayerBranch']"}),
|
||||
'license': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
|
||||
'pn': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
|
||||
'provides': ('django.db.models.fields.CharField', [], {'max_length': '2048', 'blank': 'True'}),
|
||||
'pv': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
|
||||
'section': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
|
||||
'src_uri': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
|
||||
'summary': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
|
||||
'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
|
||||
},
|
||||
'rrs.maintainer': {
|
||||
'Meta': {'ordering': "['name']", 'object_name': 'Maintainer'},
|
||||
'email': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'})
|
||||
},
|
||||
'rrs.milestone': {
|
||||
'Meta': {'unique_together': "(('release', 'name'),)", 'object_name': 'Milestone'},
|
||||
'end_date': ('django.db.models.fields.DateField', [], {'db_index': 'True'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'release': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rrs.Release']"}),
|
||||
'start_date': ('django.db.models.fields.DateField', [], {'db_index': 'True'})
|
||||
},
|
||||
'rrs.recipedistro': {
|
||||
'Meta': {'object_name': 'RecipeDistro'},
|
||||
'alias': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
|
||||
'distro': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'recipe': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['layerindex.Recipe']"})
|
||||
},
|
||||
'rrs.recipemaintainer': {
|
||||
'Meta': {'object_name': 'RecipeMaintainer'},
|
||||
'history': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rrs.RecipeMaintainerHistory']"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rrs.Maintainer']"}),
|
||||
'recipe': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['layerindex.Recipe']"})
|
||||
},
|
||||
'rrs.recipemaintainerhistory': {
|
||||
'Meta': {'object_name': 'RecipeMaintainerHistory'},
|
||||
'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rrs.Maintainer']"}),
|
||||
'date': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'sha1': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '64'}),
|
||||
'title': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'})
|
||||
},
|
||||
'rrs.recipeupgrade': {
|
||||
'Meta': {'object_name': 'RecipeUpgrade'},
|
||||
'author_date': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}),
|
||||
'commit_date': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rrs.Maintainer']", 'blank': 'True'}),
|
||||
'recipe': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['layerindex.Recipe']"}),
|
||||
'sha1': ('django.db.models.fields.CharField', [], {'max_length': '40', 'blank': 'True'}),
|
||||
'title': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'blank': 'True'}),
|
||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'})
|
||||
},
|
||||
'rrs.recipeupstream': {
|
||||
'Meta': {'object_name': 'RecipeUpstream'},
|
||||
'date': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}),
|
||||
'history': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rrs.RecipeUpstreamHistory']"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'no_update_reason': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '255', 'blank': 'True'}),
|
||||
'recipe': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['layerindex.Recipe']"}),
|
||||
'status': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '1', 'blank': 'True'}),
|
||||
'type': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '1', 'blank': 'True'}),
|
||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'})
|
||||
},
|
||||
'rrs.recipeupstreamhistory': {
|
||||
'Meta': {'object_name': 'RecipeUpstreamHistory'},
|
||||
'end_date': ('django.db.models.fields.DateTimeField', [], {}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'start_date': ('django.db.models.fields.DateTimeField', [], {})
|
||||
},
|
||||
'rrs.release': {
|
||||
'Meta': {'object_name': 'Release'},
|
||||
'end_date': ('django.db.models.fields.DateField', [], {'db_index': 'True'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}),
|
||||
'start_date': ('django.db.models.fields.DateField', [], {'db_index': 'True'})
|
||||
}
|
||||
}
|
||||
|
||||
complete_apps = ['rrs']
|
|
@ -17,8 +17,8 @@ from layerindex.models import Recipe
|
|||
|
||||
class Release(models.Model):
|
||||
name = models.CharField(max_length=100, unique=True)
|
||||
start_date = models.DateField()
|
||||
end_date = models.DateField()
|
||||
start_date = models.DateField(db_index=True)
|
||||
end_date = models.DateField(db_index=True)
|
||||
|
||||
@staticmethod
|
||||
def get_by_date(date):
|
||||
|
@ -43,8 +43,8 @@ class Release(models.Model):
|
|||
class Milestone(models.Model):
|
||||
release = models.ForeignKey(Release)
|
||||
name = models.CharField(max_length=100)
|
||||
start_date = models.DateField()
|
||||
end_date = models.DateField()
|
||||
start_date = models.DateField(db_index=True)
|
||||
end_date = models.DateField(db_index=True)
|
||||
|
||||
class Meta:
|
||||
unique_together = ('release', 'name',)
|
||||
|
@ -169,7 +169,7 @@ class Maintainer(models.Model):
|
|||
|
||||
class RecipeMaintainerHistory(models.Model):
|
||||
title = models.CharField(max_length=255, blank=True)
|
||||
date = models.DateTimeField()
|
||||
date = models.DateTimeField(db_index=True)
|
||||
author = models.ForeignKey(Maintainer)
|
||||
sha1 = models.CharField(max_length=64, unique=True)
|
||||
|
||||
|
@ -265,10 +265,10 @@ class RecipeUpstream(models.Model):
|
|||
recipe = models.ForeignKey(Recipe)
|
||||
history = models.ForeignKey(RecipeUpstreamHistory)
|
||||
version = models.CharField(max_length=100, blank=True)
|
||||
type = models.CharField(max_length=1, choices=RECIPE_UPSTREAM_TYPE_CHOICES, blank=True)
|
||||
status = models.CharField(max_length=1, choices=RECIPE_UPSTREAM_STATUS_CHOICES, blank=True)
|
||||
no_update_reason = models.CharField(max_length=255, blank=True)
|
||||
date = models.DateTimeField()
|
||||
type = models.CharField(max_length=1, choices=RECIPE_UPSTREAM_TYPE_CHOICES, blank=True, db_index=True)
|
||||
status = models.CharField(max_length=1, choices=RECIPE_UPSTREAM_STATUS_CHOICES, blank=True, db_index=True)
|
||||
no_update_reason = models.CharField(max_length=255, blank=True, db_index=True)
|
||||
date = models.DateTimeField(db_index=True)
|
||||
|
||||
@staticmethod
|
||||
def get_recipes_not_updated(history):
|
||||
|
@ -334,8 +334,8 @@ class RecipeUpgrade(models.Model):
|
|||
sha1 = models.CharField(max_length=40, blank=True)
|
||||
title = models.CharField(max_length=1024, blank=True)
|
||||
version = models.CharField(max_length=100, blank=True)
|
||||
author_date = models.DateTimeField()
|
||||
commit_date = models.DateTimeField()
|
||||
author_date = models.DateTimeField(db_index=True)
|
||||
commit_date = models.DateTimeField(db_index=True)
|
||||
|
||||
@staticmethod
|
||||
def get_by_recipe_and_date(recipe, end_date):
|
||||
|
|
Loading…
Reference in New Issue
Block a user