🗂

QueryFailedErrorへの対処法

2022/03/10に公開

使用技術

  • TypeScript 4.3.5
  • typeORM
  • PostgreSQL 14.1
  • Docker

課題

エンティティの定義でテーブル名を変更し、ローカルでサーバーを立ち上げたところ、以下のエラーが出た。

QueryFailedError: insert or update on table "xxx" violates foreign key constraint "xxxxxx"

上記のエラーに対処していく。

1. データベース"postgres"に接続

とりあえず以下のコマンドを実行するとDBの中に入れる。さらに\lでDBの状態を確認する。

$ psql postgres
>>
postgres=# \l

2. 接続するデータベースを変更

docker-compose.ymlにPOSTGRES_DB: sampleと接続先のDBをsampleと定義されているので、以下のコマンドで接続先のDBを変更する。

postgres=# \c sample

3. テーブルとデータベースを削除

sample=# DROP TABLE XXX, YYY
sample=# DROP DATABASE sample

4. 新しいデータベースを作成する

sample=# CREATE DATABASE test

最後に以下のコマンドでDBを抜ける。

sample=# \q

そして再びローカルでサーバーを立ち上げるとQueryFailedErrorが消えた。

Discussion