해결됨) django.db.utils.DataError: integer out of range

하얀설표 | 작성시간 2024.10.02. | 조회 36

(2024.10.02. 수정됨.)

에러 메세지

Traceback (most recent call last):
  File "C:\seolpyo\django5.0\Lib\site-packages\django\db\backends\utils.py", line 105, in _execute
    return self.cursor.execute(sql, params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\seolpyo\django5.0\Lib\site-packages\psycopg2\cursor.py", line 97, in execute
    raise ex.with_traceback(None)
psycopg.errors.NumericValueOutOfRange: integer out of range

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\seolpyo\django5.0\Lib\site-packages\django\db\models\base.py", line 822, in save
    self.save_base(
  File "C:\seolpyo\django5.0\Lib\site-packages\django\db\models\base.py", line 909, in save_base
    updated = self._save_table(
              ^^^^^^^^^^^^^^^^^
  File "C:\seolpyo\django5.0\Lib\site-packages\django\db\models\base.py", line 1036, in _save_table
    updated = self._do_update(
              ^^^^^^^^^^^^^^^^
  File "C:\seolpyo\django5.0\Lib\site-packages\django\db\models\base.py", line 1101, in _do_update
    return filtered._update(values) > 0
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\seolpyo\django5.0\Lib\site-packages\django\db\models\query.py", line 1278, in _update
    return query.get_compiler(self.db).execute_sql(CURSOR)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\seolpyo\django5.0\Lib\site-packages\django\db\models\sql\compiler.py", line 1990, in execute_sql
    cursor = super().execute_sql(result_type)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\seolpyo\django5.0\Lib\site-packages\django\db\models\sql\compiler.py", line 1562, in execute_sql
    cursor.execute(sql, params)
  File "C:\seolpyo\django5.0\Lib\site-packages\django\db\backends\utils.py", line 122, in execute
    return super().execute(sql, params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\seolpyo\django5.0\Lib\site-packages\django\db\backends\utils.py", line 79, in execute
    return self._execute_with_wrappers(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\seolpyo\django5.0\Lib\site-packages\django\db\backends\utils.py", line 92, in _execute_with_wrappers
    return executor(sql, params, many, context)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\seolpyo\django5.0\Lib\site-packages\django\db\backends\utils.py", line 100, in _execute
    with self.db.wrap_database_errors:
  File "C:\seolpyo\django5.0\Lib\site-packages\django\db\utils.py", line 91, in __exit__
    raise dj_exc_value.with_traceback(traceback) from exc_value
  File "C:\seolpyo\django5.0\Lib\site-packages\django\db\backends\utils.py", line 105, in _execute
    return self.cursor.execute(sql, params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\seolpyo\django5.0\Lib\site-packages\psycopg\cursor.py", line 97, in execute
    raise ex.with_traceback(None)
django.db.utils.DataError: integer out of range

문제 상황

로컬 환경에서는 문제없이 작동하던 코드가 서버 환경에서는 에러를 발생하고 있습니다.


공감 : 0

댓글 (1개)



댓글을 작성하려면 로그인해야합니다.



[글쓴이] 하얀설표

2024.10.02. 15:57
(2024.10.02. 수정됨)

질문자 채택


IntegerField는 -2,147,483,648부터 2,147,483,647 사이의 숫자만 사용할 수 있다고 합니다.

문제가 발생한 이유는 해당 범위를 벗어나는 숫자를 입력했기 때문이었습니다.
이에 따라 IntegerField를 BigIntegerField로 변경하니 문제가 해결되었습니다.

BigIntegerField는 -9,223,372,036,854,775,808부터 9,223,372,036,854,775,807 사이의 숫자를 사용할 수 있다고 합니다.

IntegerField 설명

https://docs.djangoproject.com/en/dev/ref/models/fields/#integerfield

BigIntegerField 설명

https://docs.djangoproject.com/en/dev/ref/models/fields/#bigintegerfield

공감 : 0