내 프로젝트에서 다른 시간 조각이 있습니다. 이 시간 조각에는 "00-04", "04-08", "08-12", "12-16", "16-20"및 "20-24"등과 같은 이름이 있습니다. 앞서 언급 한 이름으로 모든 시간 조각 개체를 얻고 싶었습니다. 그래서 다음과 같이 프로그래밍했습니다 :SQLite3 :: SQLException : 해당 함수 없음 : REGEXP rails rspec
time_slice_names = ["00-04", "04-08", "08-12", "12-16", "16-20", "20-24"]
time_slices = TimeSlice.where('name REGEXP ?', time_slice_names.join("|"))
time_slices는 내 개발 모드에서 올바른 개체를 제공합니다. 내가 테스트를 실행할 때 그러나, 나는이 오류가 :
ActiveRecord::StatementInvalid:
SQLite3::SQLException: no such function: REGEXP: SELECT "time_slices".* FROM "time_slices" WHERE (name REGEXP '00-04|04-08|08-12|12-16|16-20|20-24')
내 database.yml을은 다음과 같이
development:
adapter: mysql2
database: development
encoding: utf8
pool: 5
timeout: 5000
test:
adapter: sqlite3
database: db/test.sqlite3
pool: 5
timeout: 5000
내 테스트 환경 내 개발 환경을 사용하는 반면 sqlite3를를 사용하는 알고 mysql2. 어쨌든 mysql2와 sqlite3 모두 위에서 언급 한 쿼리를 수행 할 수 있습니까?
가능한 더 많은 정보를 제공합니다. 그러나 [이] (http://stackoverflow.com/questions/5071601/how-do-i-use-regex-in-a-sqlite-query) 체크 아웃 (허용 된 답변 무시). – ndn
@sadiksha 나도 SQLite 부분에 대한 많은 지식을 가지고 있지 않습니다. 따라서 SQLite가 아닌 MySQL과 함께 작동하는 경우 SQLite가 해당 regexp 함수를 구현하지 않았다고 오류가 명확하게 표시됩니다. 따라서 ndn이 제안한대로 모든 env에 동일한 Db를 사용하는 것이 좋습니다. – Autodidact
감사합니다. @ndn.이 경우 배열 처리에 대한 쿼리를 사용했습니다. 나는 너의 제안을 확실히 고려할 것이다. –