web-dev-qa-db-ja.com

SQLAlchemyで自動インクリメント値を設定する方法は?

これは私のコードです:

    class csvimportt(Base):
     __tablename__ = 'csvimportt'

      #id = Column(INTEGER, primary_key=True, autoincrement=True)
      aid = Column(INTEGER(unsigned=True, zerofill=True),
          Sequence('article_aid_seq', start=1001, increment=1),
          primary_key=True)

自動インクリメント値を1000から設定したいのですが、どうすればよいですか?

2
Farhaan Patel

SQLAlchemy 1.2ドキュメントから

Postgresql 10には、SERIALの使用に取って代わる新しいIDENTITY機能があります。 IDENTITYのレンダリングの組み込みサポートはまだ利用できませんただし、次のコンパイルフックはSERIALの出現をIDENTITYで置き換えるために使用されます。

from sqlalchemy.schema import CreateColumn
from sqlalchemy.ext.compiler import compiles


@compiles(CreateColumn, 'postgresql')
def use_identity(element, compiler, **kw):
    text = compiler.visit_create_column(element, **kw)
    text = text.replace("SERIAL", "INT GENERATED BY DEFAULT AS IDENTITY")
    return text
1
user126897