From 3853f2ba2d7ee39d7e936272f798cd26aadfabef Mon Sep 17 00:00:00 2001 From: George Lacey Date: Fri, 7 May 2021 18:33:30 +0100 Subject: [PATCH] Recreate database using --- borgweb/borg/migrations/0001_initial.py | 47 +++++++++---------------- borgweb/borg/models/__init__.py | 2 +- borgweb/borg/models/archive.py | 2 -- borgweb/borg/models/cache.py | 3 -- borgweb/borg/models/error.py | 3 -- borgweb/borg/models/label.py | 9 ++--- borgweb/borg/models/repo.py | 7 ++-- 7 files changed, 22 insertions(+), 51 deletions(-) diff --git a/borgweb/borg/migrations/0001_initial.py b/borgweb/borg/migrations/0001_initial.py index 104a104..e806d93 100644 --- a/borgweb/borg/migrations/0001_initial.py +++ b/borgweb/borg/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 3.2 on 2021-05-06 05:32 +# Generated by Django 3.2 on 2021-05-07 18:21 from django.db import migrations, models import django.db.models.deletion @@ -25,32 +25,23 @@ class Migration(migrations.Migration): ('compressed_size', models.IntegerField()), ('deduplicated_size', models.IntegerField()), ], - options={ - 'db_table': 'archive', - }, - ), - migrations.CreateModel( - name='Repo', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('fingerprint', models.TextField()), - ('location', models.TextField()), - ('last_modified', models.DateTimeField()), - ], - options={ - 'db_table': 'repo', - }, ), migrations.CreateModel( name='Label', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('label', models.TextField()), - ('repo_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='borg.repo')), + ('label', models.TextField(blank=True, unique=True)), + ], + ), + migrations.CreateModel( + name='Repo', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('fingerprint', models.TextField(unique=True)), + ('location', models.TextField()), + ('last_modified', models.DateTimeField()), + ('label', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to='borg.label')), ], - options={ - 'db_table': 'label', - }, ), migrations.CreateModel( name='Error', @@ -58,11 +49,8 @@ class Migration(migrations.Migration): ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('error', models.TextField()), ('time', models.DateTimeField()), - ('label_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='borg.label')), + ('label', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='errors', to='borg.label')), ], - options={ - 'db_table': 'error', - }, ), migrations.CreateModel( name='Cache', @@ -74,15 +62,12 @@ class Migration(migrations.Migration): ('total_unique_chunks', models.IntegerField()), ('unique_csize', models.IntegerField()), ('unique_size', models.IntegerField()), - ('archive_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='borg.archive')), + ('archive', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to='borg.archive')), ], - options={ - 'db_table': 'cache', - }, ), migrations.AddField( model_name='archive', - name='repo_id', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='borg.repo'), + name='repo', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='archives', to='borg.repo'), ), ] diff --git a/borgweb/borg/models/__init__.py b/borgweb/borg/models/__init__.py index dcbac15..f598546 100644 --- a/borgweb/borg/models/__init__.py +++ b/borgweb/borg/models/__init__.py @@ -1,5 +1,5 @@ +from .label import Label from .repo import Repo from .archive import Archive from .cache import Cache -from .label import Label from .error import Error diff --git a/borgweb/borg/models/archive.py b/borgweb/borg/models/archive.py index c128bc8..9399e0a 100644 --- a/borgweb/borg/models/archive.py +++ b/borgweb/borg/models/archive.py @@ -13,5 +13,3 @@ class Archive(models.Model): compressed_size = models.IntegerField() deduplicated_size = models.IntegerField() - class Meta: - db_table = 'archive' diff --git a/borgweb/borg/models/cache.py b/borgweb/borg/models/cache.py index a758c9a..8f4f023 100644 --- a/borgweb/borg/models/cache.py +++ b/borgweb/borg/models/cache.py @@ -10,6 +10,3 @@ class Cache(models.Model): total_unique_chunks = models.IntegerField() unique_csize = models.IntegerField() unique_size = models.IntegerField() - - class Meta: - db_table = 'cache' \ No newline at end of file diff --git a/borgweb/borg/models/error.py b/borgweb/borg/models/error.py index 0703ee7..51586a1 100644 --- a/borgweb/borg/models/error.py +++ b/borgweb/borg/models/error.py @@ -6,6 +6,3 @@ class Error(models.Model): label = models.ForeignKey(Label, on_delete=models.CASCADE, related_name='errors') error = models.TextField() time = models.DateTimeField() - - class Meta: - db_table = 'error' diff --git a/borgweb/borg/models/label.py b/borgweb/borg/models/label.py index bd7bb5a..2ca2c0a 100644 --- a/borgweb/borg/models/label.py +++ b/borgweb/borg/models/label.py @@ -1,13 +1,8 @@ from django.db import models -from . import Repo class Label(models.Model): - repo = models.OneToOneField(Repo, on_delete=models.CASCADE) - label = models.TextField() - - class Meta: - db_table = 'label' + label = models.TextField(blank=True, unique=True) def __str__(self): - return self.label \ No newline at end of file + return self.label diff --git a/borgweb/borg/models/repo.py b/borgweb/borg/models/repo.py index 265c4a2..94d0b6a 100644 --- a/borgweb/borg/models/repo.py +++ b/borgweb/borg/models/repo.py @@ -2,15 +2,14 @@ from django.db import models from datetime import datetime, timedelta from ..utility.time import seconds_to_string from ..utility.data import bytes_to_string +from . import Label class Repo(models.Model): - fingerprint = models.TextField() + fingerprint = models.TextField(unique=True) location = models.TextField() last_modified = models.DateTimeField() - - class Meta: - db_table = 'repo' + label = models.OneToOneField(Label, on_delete=models.CASCADE, unique=True) def last_backup(self): latest = self.latest_archive().start.replace(tzinfo=None)