Rails + Redshift + RSpec が動かないのはなんでや
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! をコメントアウトしてあげれば動く。
(マイグレーションなどは自前でがんばる。)