Python 3.7, Sqlalchemy 1.3.6, Oracle 12c.
Как создать последовательность в Oracle, используя Sqlalchemy ORM с параметром CACHE, установленным в «NO CACHE».
Например, естькласс таблицы, подготовленный мной (arg ??? может быть целым числом):
class Tests(BazaModel):
_ _tablename_ _ = 'testtbl'
testtbl_id = Column(Integer, Sequence('testseq', cache=???), primary_key=True)
name = Column(String(51))
Я нашел информацию, что после sqlalchemy ver. 1.1.12
есть возможность вызывать конструктор с кэшем arg, см. пример ниже:
__init__(name, start=None, increment=None, minvalue=None, maxvalue=None, nominvalue=None, nomaxvalue=None, cycle=None, schema=None, cache=None, order=None, optional=False, quote=None, metadata=None, quote_schema=None, for_update=False).
- cache
необязательное целочисленное значение;количество будущих значений в последовательности, которые рассчитываются заранее. Отображает ключевое слово CACHE, понятное Oracle и PostgreSQL. "
Но аргумент" cache "принимает значения: None, целое число больше 1, и ни одно из них, конечно, не дает того, что я хочу.
Atв этот момент я не хочу явно вызывать raw sql для базы данных, чтобы изменить настройки последовательности следующим образом:
CREATE SEQUENCE "xxx_APP"."testseq" MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 1 NOCACHE NOORDER NOCYCLE;
Я хочу сделать это с помощью Sqlalchemy ORM. Есть ли шанс сделать это?