[PATCH] Map BIGINT to INTEGER for SQLite

Frédéric Mangano-Tarumi fmang at mg0.fr
Sat Mar 21 18:13:45 UTC 2020


---
 aurweb/schema.py | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/aurweb/schema.py b/aurweb/schema.py
index fde6512f..6792cf1d 100644
--- a/aurweb/schema.py
+++ b/aurweb/schema.py
@@ -17,6 +17,17 @@ def compile_tinyint_sqlite(type_, compiler, **kw):
     return 'INTEGER'
 
 
+ at compiles(BIGINT, 'sqlite')
+def compile_bigint_sqlite(type_, compiler, **kw):
+    """
+    For SQLite's AUTOINCREMENT to work on BIGINT columns, we need to map BIGINT
+    to INTEGER. Aside from that, BIGINT is the same as INTEGER for SQLite.
+
+    See https://docs.sqlalchemy.org/en/13/dialects/sqlite.html#allowing-autoincrement-behavior-sqlalchemy-types-other-than-integer-integer
+    """
+    return 'INTEGER'
+
+
 metadata = MetaData()
 
 # Define the Account Types for the AUR.
-- 
2.25.2


More information about the aur-dev mailing list