Open1

DataTypeNotSupportedError: Data type "Object" in "xxx" is not supported by "xxx" database TypeORMエラー

まさぴょんまさぴょん

DataTypeNotSupportedError: TypeORMエラーの解決方法は?

DataTypeNotSupportedError: Data type "Object" in "xxx" is not supported by "xxx" database TypeORMエラーの解決方法は?

状況

以下のようなEntityのプロパティ定義箇所で、上記Errorが発生中・・・

@Column({ nullable: true })
videoKey: string | null = null;

解決方法

TypeORMで発生しているエラーは、TypeORMがvideoKeyのデータ型を正しく推論できず、Object型として扱ってしまっているためです。
これは、TypeScriptの型情報がランタイム時には失われるため、TypeORMがデコレーターから型情報を取得できないことが原因です

@Columnデコレーターでカラムのデータ型を明示的に指定してください。

@Column({ type: 'varchar', nullable: true })
videoKey: string | null = null;

説明

  • type: 'varchar' を指定することで、TypeORMにこのカラムがデータベース上で文字列型であることを明示します。
  • nullable: true は、このカラムがNULL値を許容することを示します。
  • TypeScriptの型定義string | nullは、そのままで問題ありません。

これにより、TypeORMは正しくデータ型を認識し、エラーが解消されます。