9.1より古いバージョンのPostgreSQL(列挙型にALTER TYPEを追加する)を使用している場合、アレムビック移行でEnumフィールドに要素を追加するにはどうすればよいですか?このSOの質問は直接のプロセスを説明していますが、アランビックを使用してそれをどのように翻訳するのが最善かはよくわかりません。
これは私が持っているものです:
new_type = sa.Enum('nonexistent_executable', 'output_limit_exceeded',
'signal', 'success', 'timed_out', name='status')
old_type = sa.Enum('nonexistent_executable', 'signal', 'success', 'timed_out',
name='status')
tcr = sa.sql.table('testcaseresult',
sa.Column('status', new_type, nullable=False))
def upgrade():
op.alter_column('testcaseresult', u'status', type_=new_type,
existing_type=old_type)
def downgrade():
op.execute(tcr.update().where(tcr.c.status==u'output_limit_exceeded')
.values(status='timed_out'))
op.alter_column('testcaseresult', u'status', type_=old_type,
existing_type=new_type)
残念ながら、上記はALTER TABLE testcaseresult ALTER COLUMN status TYPE status
アップグレード時にのみ生成され、基本的には何も実行されません。