データベース構造の管理に alembic を使用しています。
id を整数として使用し、主キーを使用してテーブルを追加すると、id 列は autoincrement-column になります。アップグレード スクリプトでデータをクエリして、正しい 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')})
)