0

db:pushデータベースをsqliteからpostgresに変換するを使用して、DjangoアプリのデータベースをHerokuにアップロードしています。

ただし、プロセス中にエラーが発生します。

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 が問題を引き起こしている可能性があります。

4

2 に答える 2

2

DatabaseError: value too long for type character varying(50)50 文字を超える文字列を VARCHAR(50) 型に格納しようとしていることを意味します。、またはCharFields (デフォルトは ) を使用してモデルを調べて、潜在的な候補を絞り込むことができます。次に、フィクスチャを調べて、これらのフィールドのいずれかに明らかに長い文字列が保存されていることに気付いたかどうかを確認します。max_length=50SlugFieldmax_length=50initial_data.json

于 2012-07-02T15:27:50.340 に答える
0

@ChrisPrattが言ったように、私は同じ問題を抱えていましたが、問題を理解できませんでした。プロジェクトにはアプリが 1 つしかありませんでした。アプリの移行フォルダーにある *py ファイル ( init .py ファイルを除く) を削除し、sqlite3 db のすべてのテーブルをクリアしました (その時点では重要なデータはありませんでした)。移行コマンドを実行しました。出来た!。

于 2016-07-20T08:26:06.003 に答える