내 모델의 기본 정수 ID를 uuid로 바꿔야합니다. 문제는 그것이 다른 모델 (foreignkey)에서 사용되는 beeing이라는 것입니다. 데이터를 잃지 않고이 작업을 수행하는 방법에 대한 아이디어가 있습니까?정수 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