Change pk (#35)
* add new primary_key field. * Add new field, populate data, change to being pk, change name, double length of name field, and set it to unique * change version, and add new migration * bump down the size, 767/4 = 191 * update readme * remove models.py comment
This commit is contained in:
parent
c99491c61c
commit
8f811db7c8
@ -51,6 +51,7 @@ I will sign everything with 0x769A1BC78A2DDEE2
|
|||||||
|
|
||||||
## CHANGELOG
|
## CHANGELOG
|
||||||
|
|
||||||
|
- 2017-02-06 [Tyrel Souza] Set primary key to `id` not `name`, this involves a lot of migrations, so I've kept them in multiple files
|
||||||
- 2017-01-27 [Tyrel Souza] Get rid of filehash
|
- 2017-01-27 [Tyrel Souza] Get rid of filehash
|
||||||
- 2017-01-26 [Tyrel Souza] Check filehash and filename, not just hash when checking if it needs to be saved.
|
- 2017-01-26 [Tyrel Souza] Check filehash and filename, not just hash when checking if it needs to be saved.
|
||||||
- 2017-01-25 [Tyrel Souza] Keeping Filename on upload.
|
- 2017-01-25 [Tyrel Souza] Keeping Filename on upload.
|
||||||
|
20
dbfilestorage/migrations/0007_auto_20170206_1940.py
Normal file
20
dbfilestorage/migrations/0007_auto_20170206_1940.py
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# Generated by Django 1.10.4 on 2017-02-06 19:40
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('dbfilestorage', '0006_remove_dbfile_filehash'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='dbfile',
|
||||||
|
name='primary_key',
|
||||||
|
field=models.IntegerField(null=True),
|
||||||
|
)
|
||||||
|
]
|
23
dbfilestorage/migrations/0008_auto_20170206_1945.py
Normal file
23
dbfilestorage/migrations/0008_auto_20170206_1945.py
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# Generated by Django 1.10.4 on 2017-02-06 19:45
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
from django.db import migrations
|
||||||
|
|
||||||
|
def _fix_pk(apps, schema_editor):
|
||||||
|
""" Set the primary_key to be a series """
|
||||||
|
DBFile = apps.get_model("dbfilestorage", "DBFile")
|
||||||
|
for idx, dbf in enumerate(DBFile.objects.all()):
|
||||||
|
dbf.primary_key = idx+1
|
||||||
|
dbf.save()
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('dbfilestorage', '0007_auto_20170206_1940'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.RunPython(_fix_pk)
|
||||||
|
]
|
25
dbfilestorage/migrations/0009_auto_20170206_1954.py
Normal file
25
dbfilestorage/migrations/0009_auto_20170206_1954.py
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# Generated by Django 1.10.4 on 2017-02-06 19:54
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('dbfilestorage', '0008_auto_20170206_1945'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='dbfile',
|
||||||
|
name='name',
|
||||||
|
field=models.CharField(max_length=100),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='dbfile',
|
||||||
|
name='primary_key',
|
||||||
|
field=models.IntegerField(primary_key=True, serialize=False),
|
||||||
|
),
|
||||||
|
]
|
20
dbfilestorage/migrations/0010_auto_20170206_1954.py
Normal file
20
dbfilestorage/migrations/0010_auto_20170206_1954.py
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# Generated by Django 1.10.4 on 2017-02-06 19:54
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
from django.db import migrations
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('dbfilestorage', '0009_auto_20170206_1954'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.RenameField(
|
||||||
|
model_name='dbfile',
|
||||||
|
old_name='primary_key',
|
||||||
|
new_name='id',
|
||||||
|
),
|
||||||
|
]
|
20
dbfilestorage/migrations/0011_auto_20170206_1956.py
Normal file
20
dbfilestorage/migrations/0011_auto_20170206_1956.py
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# Generated by Django 1.10.4 on 2017-02-06 19:56
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('dbfilestorage', '0010_auto_20170206_1954'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='dbfile',
|
||||||
|
name='name',
|
||||||
|
field=models.CharField(max_length=190, unique=True),
|
||||||
|
),
|
||||||
|
]
|
20
dbfilestorage/migrations/0012_auto_20170206_2004.py
Normal file
20
dbfilestorage/migrations/0012_auto_20170206_2004.py
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# Generated by Django 1.10.4 on 2017-02-06 20:04
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('dbfilestorage', '0011_auto_20170206_1956'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='dbfile',
|
||||||
|
name='id',
|
||||||
|
field=models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
|
||||||
|
),
|
||||||
|
]
|
@ -4,10 +4,7 @@ from django.db import models
|
|||||||
class DBFile(models.Model):
|
class DBFile(models.Model):
|
||||||
""" Model to store and access uploaded files """
|
""" Model to store and access uploaded files """
|
||||||
|
|
||||||
# This is kept as `name` and not something like `md5` because the file
|
name = models.CharField(max_length=190, unique=True)
|
||||||
# operations pass around `name` as the identifier, so it's kept the same
|
|
||||||
# to make sense.
|
|
||||||
name = models.CharField(max_length=100, primary_key=True)
|
|
||||||
|
|
||||||
# file data
|
# file data
|
||||||
content_type = models.CharField(max_length=100)
|
content_type = models.CharField(max_length=100)
|
||||||
|
@ -69,7 +69,7 @@ class DBFileStorage(Storage):
|
|||||||
assert name, "The name argument is not allowed to be empty."
|
assert name, "The name argument is not allowed to be empty."
|
||||||
# name is the Pk, so it will be unique, deleting on the QS so
|
# name is the Pk, so it will be unique, deleting on the QS so
|
||||||
# that it fails silently if the file doesn't exist.
|
# that it fails silently if the file doesn't exist.
|
||||||
DBFile.objects.filter(pk=name).delete()
|
DBFile.objects.filter(name=name).delete()
|
||||||
|
|
||||||
def exists(self, name):
|
def exists(self, name):
|
||||||
return DBFile.objects.filter(name=name).exists()
|
return DBFile.objects.filter(name=name).exists()
|
||||||
|
@ -54,7 +54,7 @@ author = u'Tyrel Souza'
|
|||||||
# built documents.
|
# built documents.
|
||||||
#
|
#
|
||||||
# The short X.Y version.
|
# The short X.Y version.
|
||||||
version = u'0.6.0'
|
version = u'0.8.0'
|
||||||
# The full version, including alpha/beta/rc tags.
|
# The full version, including alpha/beta/rc tags.
|
||||||
release = version
|
release = version
|
||||||
|
|
||||||
|
2
setup.py
2
setup.py
@ -24,7 +24,7 @@ class CleanCommand(Command):
|
|||||||
|
|
||||||
setup(
|
setup(
|
||||||
name="django-dbfilestorage",
|
name="django-dbfilestorage",
|
||||||
version="0.6.0",
|
version="0.8.0",
|
||||||
description="Database backed file storage for testing.",
|
description="Database backed file storage for testing.",
|
||||||
long_description="Database backed file storage for testing. Stores files as base64 encoded textfields.",
|
long_description="Database backed file storage for testing. Stores files as base64 encoded textfields.",
|
||||||
author="Tyrel Souza",
|
author="Tyrel Souza",
|
||||||
|
Loading…
Reference in New Issue
Block a user