어제 오후에 습관처럼 gem update
를 날리고 아무 생각없이 잠자리에 누워서 웹툰 알리미를 기다리고 있었는데, 분명 11시 이후부터 알림이 와야하는데, 아무런 알림도 오지 않았다.
코드를 보는데, 이상하게 where()에서 boolean 을 검색하지 못하고 있다.
>> Toon.where(code: 119874) D, [2019-08-25T17:32:43.633800 #51336] DEBUG -- : Toon Load (0.1ms) SELECT "toons".* FROM "toons" WHERE "toons"."code" = ? [["code", "119874"]] => #<ActiveRecord::Relation [#<Toon id: 3, code: "119874", publisher: "naver", toon_type: "webtoon", created_at: "2018-09-20 20:22:45", updated_at: "2019-08-25 17:19:03", frequently: true>]>
string이나 integer 는 저렇게 검색이 잘 되는데,
>> Toon.where(frequently: true) #=> #<ActiveRecord::Relation []> D, [2019-08-25T03:39:54.848019 #34914] DEBUG -- : Toon Load (0.2ms) SELECT "toons".* FROM "toons" WHERE "toons"."frequently" = ? [["frequently", 1]]
boolean 은 이렇게 검색이 안되고 있었다.
웹툰 알리미는 덴마 같은 만화는 3분 마다 검색하고, 나머지는 15분에 한번씩 검색하고 있는데, boolean 이 검색이 안되니 아무 만화도 못 가져오고 있던 것이었다. 새벽 5시 넘어서까지 문제를 찾아봤지만, 결국 해결 못했다.
오늘 오후에 다시 보기 시작했는데, 역시나 못 찾았다. 그러다 혹시나 싶어서 db viewer로 열어보니


기존 boolean 값을 강제로 0, 1로 바꾸고 나니 잘 동작한다. 원래 이런 건 큰 문제 없어야하는데, 이번에 rails 6나오면서 많이 바뀌었나 보다 ㅠㅠ
여전히 새로 추가되는 값은 검색이 되지 않아서 그냥 integer 타입으로 바꾸고 0, 1 값을 넣게 바꿨다.