aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVlad2014-04-16 10:44:06 +0300
committerVlad2014-04-16 10:44:06 +0300
commite34b79db4a3a82e7236a02b13f2caf18275222b8 (patch)
tree8f461dd1a5145927d23d0079959f6e9fb252d233
parentfa177590906de6fdef3c51d4c4acf27af9b19c4d (diff)
downloaddjango-brevisurl-e34b79db4a3a82e7236a02b13f2caf18275222b8.tar.bz2
Commit savepoint when object is created successfuly, generate migration
-rw-r--r--brevisurl/backends/local.py3
-rw-r--r--brevisurl/migrations/0002_auto__add_index_shorturl_original_url.py32
2 files changed, 34 insertions, 1 deletions
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