diff options
author | 2009-07-09 19:13:47 +0200 | |
---|---|---|
committer | 2009-07-09 20:25:30 +0200 | |
commit | e5ca34ab98e44a4c4897fd4c2450a9842a55779f (patch) | |
tree | 6f7f57754c3a20229a095a2154e8afb84f8b043d /src/matchbox/db/main | |
parent | Fix errors in ddl (diff) | |
download | collagen-e5ca34ab98e44a4c4897fd4c2450a9842a55779f.tar.gz collagen-e5ca34ab98e44a4c4897fd4c2450a9842a55779f.tar.bz2 collagen-e5ca34ab98e44a4c4897fd4c2450a9842a55779f.zip |
Added implementation of basic db functions
Using Django backend for ORM mapping. Django ORM may not be best, but we
can reuse it later in web application
Diffstat (limited to 'src/matchbox/db/main')
-rw-r--r-- | src/matchbox/db/main/__init__.py | 0 | ||||
-rw-r--r-- | src/matchbox/db/main/initial_data.json | 23 | ||||
-rw-r--r-- | src/matchbox/db/main/models.py | 50 |
3 files changed, 73 insertions, 0 deletions
diff --git a/src/matchbox/db/main/__init__.py b/src/matchbox/db/main/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/src/matchbox/db/main/__init__.py diff --git a/src/matchbox/db/main/initial_data.json b/src/matchbox/db/main/initial_data.json new file mode 100644 index 0000000..613b7a5 --- /dev/null +++ b/src/matchbox/db/main/initial_data.json @@ -0,0 +1,23 @@ +[ + { + "model": "main.FileType", + "pk": 1, + "fields": { + "name": "obj" + } + }, + { + "model": "main.FileType", + "pk": 2, + "fields": { + "name": "sym" + } + }, + { + "model": "main.FileType", + "pk": 3, + "fields": { + "name": "dir" + } + } +] diff --git a/src/matchbox/db/main/models.py b/src/matchbox/db/main/models.py new file mode 100644 index 0000000..5448269 --- /dev/null +++ b/src/matchbox/db/main/models.py @@ -0,0 +1,50 @@ +from django.db import models + +# Create your models here. +class Package(models.Model): + name = models.CharField(max_length=255,unique=True) + +class PackageVersion(models.Model): + version = models.CharField(max_length=255) + package = models.ForeignKey('Package') + category = models.ForeignKey('PackageCategory') + dependencies = models.ManyToManyField('self', symmetrical=False) + +class PackageCategory(models.Model): + name = models.CharField(max_length=255,unique=True) + +class PortageProfile(models.Model): + name = models.CharField(max_length=255,unique=True) + +class Tinderbox(models.Model): + ip = models.IPAddressField() + +class PackageProperties(models.Model): + packageversion = models.ForeignKey('PackageVersion') + profile = models.ForeignKey('PortageProfile') + tinderbox = models.ForeignKey('Tinderbox') + error_code = models.IntegerField() + contents = models.ManyToManyField('File',through='PackageProperties_File') + useflags = models.ManyToManyField('Useflag') + +class Attachment(models.Model): + packageproperties = models.ForeignKey('PackageProperties') + name = models.CharField(max_length=255) + mimetype = models.CharField(max_length=255) + content = models.TextField() + +class Useflag(models.Model): + name = models.CharField(max_length=255, unique=True) + +class File(models.Model): + path = models.CharField(max_length=65535, unique=True) + +class FileType(models.Model): + name = models.CharField(max_length=20, unique=True) + +class PackageProperties_File(models.Model): + file = models.ForeignKey('File') + filetype = models.ForeignKey('FileType') + packageproperties = models.ForeignKey('PackageProperties') + hash = models.CharField(max_length=32,blank=True) + size = models.IntegerField(blank=True) |