나는 데이터베이스 구조를 관리하는 데 alembic를 사용하고 있습니다.alembic 및 마지막 삽입 값 가져 오기
ID를 Integer 및 기본 키로 사용하여 테이블을 추가 한 후 id 열은 자동 증가 열입니다. 업그레이드 스크립트의 데이터를 쿼리하여 정확한 ID를 얻을 수 있도록하는 방법 (이 특정 사례에서 1이라는 것을 알고 있습니다)?
나는 내가 갱신 할 수있는 방법을 알고
#creating the table
op.create_table(
'srv_feed_return_type',
sa.Column('id', sa.Integer, primary_key=True),
sa.Column('name', sa.String(50), nullable=False),
sa.Column('created', sa.DateTime, server_default=func.now(), nullable=False),
sa.Column('created_by', sa.String(50), nullable=False),
sa.Column('last_updated', sa.DateTime, nullable=False),
sa.Column('last_updated_by', sa.String(50), nullable=False)
)
#table for operations
srv_feed_return_type = table('srv_feed_return_type',
column('name'),
column('created'),
column('created_by'),
column('last_updated'),
column('last_updated_by'))
#bulk insert
op.bulk_insert(srv_feed_return_type,
[
{'name': 'dataset',
'created': datetime.now(), 'created_by': 'Asken',
'last_updated': datetime.now(), 'last_updated_by': 'Asken'}
])
알고 있지만 나는 다음과 같은 유사한 선택하여 일을 어떻게해야합니까?
op.execute(
srv_feed_return_type.update().\
where(srv_feed_return_type.c.name==op.inline_literal('dataset')).\
values({'name':op.inline_literal('somethingelse')})
)
를 하드 코딩했다가 마이그레이션이 완료 될 때까지 새로 만든 테이블을 수정하는 다른 프로세스가 없을 것이라고 가정하는 것이 안전합니까? 이 예에 대해서는 – vvladymyrov
예.하지만 여기에 하나가 될 것입니다. 다른 마이그레이션에서는 더 이상 1이 아닙니다. 나는 특정 반환 유형의 ID를 알아야합니다. – Asken
귀하의 앱에 어떤 데이터베이스를 사용하고 있으며 다른 데이터베이스에 더 많은 가능성이 있습니다 - 애플리케이션을 데이터베이스에 의존 할 필요가 있습니까? – vvladymyrov