私は現在、私の Django アプリケーションでキャッチ 22 で立ち往生しています。UUID から単純な古い ID に移行するため、列のタイプを Varying char から Integer に変更する必要があります (物理定数であるため、データは変化しません)。ここで、django はもともと VarChar から Int にキャストできないことについて Fit を投げたので、次のように「助けました」:
ALTER TABLE glass_fill ALTER COLUMN id TYPE INTEGER USING CAST(id AS INT);
今、それは言います:
django.db.utils.DatabaseError: foreign key constraint "glass_fill_manufacturer_glass_fill_id_fkey" cannot be implemented
DETAIL: Key columns "glass_fill_id" and "id" are of incompatible types: integer and character varying.
何か案は?
注: glass_fill_manufacturer テーブルはまだ作成されていません。django は syncdb を試みますが失敗します。また、
ALTER TABLE glass_fill ALTER COLUMN id TYPE INTEGER USING CAST(id AS INT);
行は思ったように列を変更しませんでした。
glass_fill テーブル スキーマ:
-- Table: glass_fill
-- DROP TABLE glass_fill;
CREATE TABLE glass_fill
(
id character varying(36) NOT NULL,
name character varying(255),
temperature real,
density real,
viscosity real,
conductivity real,
heat_capacity real,
colour text,
CONSTRAINT glass_fill_pkey PRIMARY KEY (id )
)
WITH (
OIDS=FALSE
);