Я загружаю базу данных для своего приложения Django в Heroku, используя db:push
, который преобразует мою базу данных из sqlite в postgres.Преобразование базы данных sqlite в postgres дает DatabaseError: слишком длинное значение для символа типа (50)
Однако в процессе я получаю ошибку:
Taps Server Error: PGError: ERROR: integer out of range
При попытке создать чистую базу данных на сервере Heroku, используя python manage.py syncdb
, я получаю подобное сообщение:
Installing index for django_openid.UserOpenidAssociation model
Installing json fixture 'initial_data' from '/app/.heroku/venv/lib/python2.7/site- packages/oembed/fixtures'.
Installing json fixture 'initial_data' from '/app/.heroku/venv/lib/python2.7/site- packages/pinax/apps/photos/fixtures'.
Installing json fixture 'initial_data' from '/app/store/fixtures'.
Problem installing fixture '/app/store/fixtures/initial_data.json': Traceback (most recent call last):
File "/app/.heroku/venv/lib/python2.7/site-packages/django/core/management/commands/loaddata.py", line 169, in handle
obj.save(using=using)
File "/app/.heroku/venv/lib/python2.7/site-packages/django/core/serializers/base.py", line 165, in save
models.Model.save_base(self.object, using=using, raw=True)
File "/app/.heroku/venv/lib/python2.7/site-packages/django/db/models/base.py", line 501, in save_base
rows = manager.using(using).filter(pk=pk_val)._update(values)
File "/app/.heroku/venv/lib/python2.7/site-packages/django/db/models/query.py", line 491, in _update
return query.get_compiler(self.db).execute_sql(None)
File "/app/.heroku/venv/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 861, in execute_sql
cursor = super(SQLUpdateCompiler, self).execute_sql(result_type)
File "/app/.heroku/venv/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 727, in execute_sql
cursor.execute(sql, params)
File "/app/.heroku/venv/lib/python2.7/site-packages/django/db/backends/util.py", line 15, in execute
return self.cursor.execute(sql, params)
File "/app/.heroku/venv/lib/python2.7/site-packages/django/db/backends/postgresql_psycopg2/base.py", line 44, in execute
return self.cursor.execute(query, args)
DatabaseError: value too long for type character varying(50)
Мне кажется, что проблема заключается в исходных данных, но не совсем уверен. Я нашел здесь сообщение, в котором говорилось, что это может быть проблема с кодированием поля, но даже если я должен был изучить, что не совсем точно, как читать сообщение об ошибке, чтобы узнать, что именно вызывает проблему, а также определить, какая таблица/column может вызвать проблему.
У вас есть DDL для вашей базы данных sqlite? как насчет базы данных postgresql? Не могли бы вы также опубликовать это? – swasheck