From e34b79db4a3a82e7236a02b13f2caf18275222b8 Mon Sep 17 00:00:00 2001 From: Vlad Date: Wed, 16 Apr 2014 10:44:06 +0300 Subject: Commit savepoint when object is created successfuly, generate migration --- brevisurl/backends/local.py | 3 +- .../0002_auto__add_index_shorturl_original_url.py | 32 ++++++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 brevisurl/migrations/0002_auto__add_index_shorturl_original_url.py diff --git a/brevisurl/backends/local.py b/brevisurl/backends/local.py index 5d2d4d7..34d2d83 100644 --- a/brevisurl/backends/local.py +++ b/brevisurl/backends/local.py @@ -2,10 +2,10 @@ import math import random import logging -from django.db import IntegrityError, transaction from django.contrib.sites.models import Site from django.core.exceptions import ValidationError from django.core.urlresolvers import reverse +from django.db import IntegrityError, transaction import brevisurl.settings from brevisurl import Error @@ -65,6 +65,7 @@ class BrevisUrlBackend(BaseBrevisUrlBackend): original_url=original_url, shortened_url=shortened_url) log.info('Url "%s" shortened to "%s"', original_url, shortened_url) + transaction.savepoint_commit() return short_url except (IntegrityError, ValidationError) as e: transaction.savepoint_rollback(sid) diff --git a/brevisurl/migrations/0002_auto__add_index_shorturl_original_url.py b/brevisurl/migrations/0002_auto__add_index_shorturl_original_url.py new file mode 100644 index 0000000..5e5811d --- /dev/null +++ b/brevisurl/migrations/0002_auto__add_index_shorturl_original_url.py @@ -0,0 +1,32 @@ +# -*- 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 'ShortUrl', fields ['original_url'] + db.create_index('brevisurl_shorturl', ['original_url']) + + + def backwards(self, orm): + # Removing index on 'ShortUrl', fields ['original_url'] + db.delete_index('brevisurl_shorturl', ['original_url']) + + + models = { + 'brevisurl.shorturl': { + 'Meta': {'ordering': "['-created']", 'unique_together': "(('original_url_hash', 'backend'),)", 'object_name': 'ShortUrl'}, + 'backend': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'db_index': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'original_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'db_index': 'True'}), + 'original_url_hash': ('django.db.models.fields.CharField', [], {'max_length': '64'}), + 'shortened_url': ('django.db.models.fields.URLField', [], {'unique': 'True', 'max_length': '200'}) + } + } + + complete_apps = ['brevisurl'] \ No newline at end of file -- cgit v1.2.3