0
私のモデルのデフォルトの整数IDをuuidに置き換える必要があります。問題は、それが別のモデル(外部キー)で使用されているということです。 データを失うことなくこの操作を実行する方法については何ですか?整数IDフィールドをuuidに置き換えます
class A(Base):
__tablename__ = 'a'
b_id = Column(
GUID(), ForeignKey('b.id'), nullable=False,
server_default=text("uuid_generate_v4()")
)
class B(Base):
__tablename__ = 'b'
id = Column(
GUID(), primary_key=True,
server_default=text("uuid_generate_v4()")
)
残念ながら、それは動作しませんまた、私はその関係を壊す恐れがあります。
op.execute('ALTER TABLE a ALTER COLUMN b_id SET DATA TYPE UUID USING (uuid_generate_v4())')
私はこれが既存の関係をどのように保つのかを確信していません。 SQL構文やPython/alembicコードで表示できますか? – user2091046
あなたがそれを見たならば、Raiders of the Lost Arkからのbag-of-sandトリックのSQLに相当するものですが、巨大な岩を除いては例外です。私は例を追加しました。 – dmfay