Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

1.6K
Views
Django - deterministic=True requires SQLite 3.8.3 or higher upon running python manage.py runserver

I am running a linux red hat environment from AWS.

I have followed every instruction for upgrading sqlite3 to the "latest" version.

I am running python 3.9.2 (and have recompiled it with LD_RUN_PATH=/usr/local/lib ./configure) and django version 4.

I have set up a virtual environment to install and run django. I have changed the activate script to include export LD_LIBRARY_PATH="/usr/local/lib"

Upon running python manage.py runserver, I get the error django.db.utils.NotSupportedError: deterministic=True requires SQLite 3.8.3 or higher. I have opened the file /home/ec2-user/django/django/db/backends/sqlite3/base.py (where the error occurs) and right after the line with the error have include a print statement:

print("**************************\n" +
    str(Database.sqlite_version) +
    "\n" + str(Database.sqlite_version_info) +
    "\n**************************")

which retruns:

**************************
3.28.0
(3, 28, 0)
**************************
**************************
3.28.0
(3, 28, 0)
**************************

Please let me know what additional information is needed. I have searched up and down the stack and can't find the right solution to pop this one off.

Thank you in advance!

EDIT

Here is the traceback:

Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).
Exception in thread django-main-thread:
Traceback (most recent call last):
  File "/home/ec2-user/django/django/db/backends/base/base.py", line 219, in ensure_connection
    self.connect()
  File "/home/ec2-user/django/django/utils/asyncio.py", 21 in inner
    return func(*args, **kwargs)
  File "/home/ec2-user/django/django/db/backends/base/base.py", line 200, in connect
    self.connection = self.get_new_connection(conn_params)
  File "/home/ec2-user/django/django/utils/asyncio.py", line 26, in inner
    return func(*args, **kwargs)
  File "/home/ec2-user/django/django/db/backends/sqlite3/base.py", line 210, in get_new_connection
    create_deterministic_function('django_date_extract', 2, _sqlite_datetime_extract)
sqlite3.NotSupportedError: deterministic=True requires SQLite 3.8.3 or higher

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

Traceback (most recent call last):
  File "/opt/python/lib/python/3.9/threading.py", line 954, in _bootstrap_inner
    self.run()
  File "/opt/python39/lib/python3.9/threading.py", line 892, in run
    self._target(*self._args, **self._kwargs)
  File "/home/ec2-user/django/django/utils/autoreload.py", line 64, in wrapper
    fn(*args, **kwargs)
  File "/home/ec2-user/django/django/core/management/commands/runserver.py", line 126, in inner_run
    self.check_migrations()
  File "/home/ec2-user/django/django/core/management/base.py", line 486, in check_migrations
    executor = MigrationExecutor(connectsion[DEFAULT_DB_ALIAS])
  File "/home/ec2-user/django/django/db/migrations/executor.py", line 18, in __init__
    self.loader = MigrationLoader(self.connection)
  File "/home/ec2-user/django/django/db/migrations/loader.py", line 53, in __init__
    self.build_graph()
  File "/home/ec2-user/django/django/db/migrations/loader.py", line 220, in build_graph
    self.applied_migrations = recorder.applied_migrations()
  File "/home/ec2-user/django/django/db/migrations/recorder.py", line 77, in applied_migrations
    if self.has_table():
  File "/home/ec2-user/django/django/db/migrations/recorder.py", line 55, in has_table
    with self.connection.cursor() as cursor:
  File "/home/ec2-user/django/django/utils/asyncio.py", line 26, in inner
    return func(*args, **kwargs)
  File "/home/ec2-user/django/django/db/backends/base/base.py", line 259, in cursor
    return self._cursor()
  File "/home/ec2-user/django/django/db/backends/base/base.py", line 235, in _cursor
    self.ensure_connection()
  File "/home/ec2-user/django/djanog/utils/asyncio.py", line 26, in inner
    return func(*args, **kwargs)
  File "/home/ec2-user/django/django/db/backends/base/base.py", line 219, in ensure_connection
    self.connect()
  File "/home/ec2-user/django/django/db/utils.py", line 90, in __exit__
    raise dj_exc_value.with_traceback(traceback) from exc_value
  File "/home/ec2-user/django/django/db/backends/base/base.py", line 219, in ensure_connection
    self.connect()
  File "/home/ec2-user/django/django/utils/asyncio.py", line 26, in inner
    return func(*args, **kwargs)
  File "/home/ec2-user/django/django/db/backends/base/base.py", line 200, in connect
    self.connection = self.get_new_connection(conn_params)
  File "/home/ec2-user/django/django/utils/asyncio.py", line 26, in inner
    return func(*args, **kwargs)
  File "/home/ec2-user/django/django/db/backends/sqlite3/base.py", line 210, in get_new_connection
    create_deterministic_function('django_date_extract', 2, _sqlite_datetime_extract)
django.db.utils.NotSupportedError: deterministic=True requires SQLite 3.8.3 or higher
over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

The best I can figure at the moment is to go into /home/ec2-user/django/django/db/backends/sqlite3/base.py, change the function variable deterministic=True in get_new_connection() to deterministic=False...

This will remove the error, but seems like a super cheaty solution. If anyone has a better fix, please let me know.

over 4 years ago · Santiago Trujillo Report

0

I came across the same issue in my linux Centos7+python3.9.6+Django3.2.5. Althougt the sqlite3 is updated to the lastest version. It seems that this is useless. A kind of solution is changing the database from sqlite3 to pysqlite3. After acticate the virtualenv, install pysqlite

pip3 install pysqlite3
pip3 install pysqlite3-binary

and change db in base.py

vim python3.9.6/site-packages/django/db/backends/sqlite3/base.py

# from sqlite3 import dbapi2 as Database # annotation
from pysqlite3 import dbapi2 as Database # import pysqlite3

restart django server and it works.

over 4 years ago · Santiago Trujillo Report

0

enter image description here

I have got the same problem as yours. when I tried to deploy on Elastic Beanstalk. In my case used Python 3.8 when I initialized EB CLI like this:

eb init -p python-3.8 django-project ⛔

and that not a good python version to run it on 64bit Amazon Linux 2 (default). change to python-3.7

eb init -p python-3.7 django-project ✅
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!