without primary foreign ejemplo create autoincrement sqlite sqlalchemy

primary - sqlite sequence



¿BIGINT autoincremento funciona para SQLAlchemy con sqlite? (2)

Estoy tratando de declarar una tabla usando SQLAlchemy. Me gustaría incluir una clave primaria incremental automática de BIGINT en la tabla. Esto no parece funcionar con sqlite como el backend DB. Por otro lado, tener INTEGER auto incrementando la clave primaria funciona bien.

Leí que sqlite tiene ROWID que es un bigint firmado. Pero, ¿hay alguna forma de tener un campo de incremento automático de BIGINT? De esta manera puedo intercambiar backends sin preocuparme por problemas específicos de DB (suponiendo que MySQL y Postgres soportan campos de incremento automático de Bigint).

Gracias.


Para otros que llegan aquí a través de Google y solo necesitan una solución, he escrito el siguiente código:

# SQLAlchemy does not map BigInt to Int by default on the sqlite dialect. # It should, but it doesnt. from sqlalchemy import BigInteger from sqlalchemy.dialects import postgresql, mysql, sqlite BigIntegerType = BigInteger() BigIntegerType = BigIntegerType.with_variant(postgresql.BIGINT(), ''postgresql'') BigIntegerType = BigIntegerType.with_variant(mysql.BIGINT(), ''mysql'') BigIntegerType = BigIntegerType.with_variant(sqlite.INTEGER(), ''sqlite'')

Esto le permitirá usar BIGINT en una base de datos, e INT para cuando ejecute pruebas unitarias.