0
我需要用uuid替換模型中的默認整數ID。問題在於它在另一個模型(foreignkey)中使用。 有關如何在不丟失數據的情況下執行此操作的任何想法?用uuid替換整數ID字段
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()")
)
不幸的是它不起作用,恐怕我會打破關係。
sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) default for column "id" cannot be cast automatically to type uuid
蒸餾器遷移我已經試過類似如下:
op.execute('ALTER TABLE a ALTER COLUMN b_id SET DATA TYPE UUID USING (uuid_generate_v4())')
我不知道我得到這將如何保持現有的關係。 你可以通過SQL語法或python/alembic代碼顯示它嗎? – user2091046
如果你已經看到了這個,那麼你就可以從「失落方舟攻略」中得到的沙袋技巧的SQL等價物,除非有更少的巨石。我已經添加了一個例子。 – dmfay