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は正しくデータ型を認識し、エラーが解消されます。