読者です 読者をやめる 読者になる 読者になる

Rails + Redshift + RSpec が動かないのはなんでや

rails Ruby

redshift の adapter は aamine/activerecord4-redshift-adapter を使ってる。
GitHub - aamine/activerecord4-redshift-adapter: ActiveRecord 4 DB adapter for Amazon Redshift

なんだか動かない。

$ ./bin/rspec
rake aborted!
Rake tasks not supported by 'redshift' adapter

作者は3年前から動かないことを把握してる。
"rake spec" does not work · Issue #2 · aamine/activerecord4-redshift-adapter · GitHub

Issue のコメントにある通り、たぶんこのあたりが足りてない。

他のアダプターはどうなっているのかというと、例えば sqlserver は自前実装してる。
activerecord-sqlserver-adapter/sqlserver_database_tasks.rb at master · rails-sqlserver/activerecord-sqlserver-adapter · GitHub

redshift_database_tasks.rb を作って PR するのが、ちゃんとした大人っぽい。

./bin/rspec 後、どこで abort しているかというと、rails_helper.rb の ActiveRecord::Migration.maintain_test_schema!

maintain_test_schema が中で bin/rake db:test:prepare してるのでコケる。
rails/migration.rb at 4-2-stable · rails/rails · GitHub

rails_helper.rb の ActiveRecord::Migration.maintain_test_schema! をコメントアウトしてあげれば動く。
(マイグレーションなどは自前でがんばる。)