SQLite3のUNIQUE constraint failed

RubyフレームワークのHanamiでRepositoryの挙動をminitestでテストしてもユニークじゃないよと怒られた。migrationファイル見たら、カラムがユニークだったため(unique: true)、それを削除してbundle exec hanami db prepareしたが、やはりユニークじゃないと怒られた。

エラーメッセージ

TnoteNoteRepository#test_0001_associations are successful:
Hanami::Model::UniqueConstraintViolationError: SQLite3::ConstraintException: UNIQUE constraint failed: tnote_streams.tnote_note_id
↑「tnote_note_id」というカラムがユニーク設定になっているのに、値が重複したレコードを追加してるよ、的な意図のメッセージ

原因

minitest実行はtest環境で実行されるが、db prepareでdevelopment環境しかDB更新していなかったため。test環境もdb prepare(コマンド:HANAMI_ENV=test bundle exec hanami db prepare)することで解決。

Written with StackEdit.

CategoriesDB