Reputation: 15
I have made a script that reads xml file and populates database from it. When I run it locally it works with no problems. But when I run it on heroku it goes through and populates some data (exactly 6 objects), but then throws this error:
skripta_vnos.py
is my populating script I run it in shell
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/app/skripta_vnos.py", line 97, in <module>
dob.save()
File "/app/.heroku/python/lib/python2.7/site-packages/django/db/models/base.py", line 806, in save
force_update=force_update, update_fields=update_fields)
File "/app/.heroku/python/lib/python2.7/site-packages/django/db/models/base.py", line 836, in save_base
updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)
File "/app/.heroku/python/lib/python2.7/site-packages/django/db/models/base.py", line 922, in _save_table
result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)
File "/app/.heroku/python/lib/python2.7/site-packages/django/db/models/base.py", line 961, in _do_insert
using=using, raw=raw)
File "/app/.heroku/python/lib/python2.7/site-packages/django/db/models/manager.py", line 85, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/app/.heroku/python/lib/python2.7/site-packages/django/db/models/query.py", line 1063, in _insert
return query.get_compiler(using=using).execute_sql(return_id)
File "/app/.heroku/python/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 1099, in execute_sql
cursor.execute(sql, params)
File "/app/.heroku/python/lib/python2.7/site-packages/django/db/backends/utils.py", line 80, in execute
return super(CursorDebugWrapper, self).execute(sql, params)
File "/app/.heroku/python/lib/python2.7/site-packages/django/db/backends/utils.py", line 65, in execute
return self.cursor.execute(sql, params)
File "/app/.heroku/python/lib/python2.7/site-packages/django/db/utils.py", line 94, in __exit__
six.reraise(dj_exc_type, dj_exc_value, traceback)
File "/app/.heroku/python/lib/python2.7/site-packages/django/db/backends/utils.py", line 65, in execute
return self.cursor.execute(sql, params)
DataError: value too long for type character varying(100)
my model looks like this:
class Supply(models.Model):
name = models.CharField(max_length=255)
maticna = models.CharField(max_length=255)
organ = models.CharField(max_length=255, null=True, blank=True)
pos = models.CharField(max_length=255, null=True, blank=True)
city = models.CharField(max_length=255, null=True, blank=True)
postn= models.CharField(max_length=255, null=True, blank=True)
hisna = models.CharField(max_length=255, null=True, blank=True)
email = models.CharField(max_length=255, null=True, blank=True)
def __str__(self):
return self.name.encode("utf-8")
def get_absolute_url(self):
return reverse('supply-detail', args=[str(self.id)])
Upvotes: 1
Views: 137
Reputation: 90
Like shlomta1 said your string is larger than max length. Try running heroku run python manage.py migrate
so you apply those max lengths to your heroku database too
Upvotes: 0
Reputation: 148
You getting this error because one of your strings is larger than the max length. If its working locally you probably changed the max length and didn't migrate your changes on Heroku.
Upvotes: 2