現在10日で覚えるRuby On Railsで学習中です。
本書ではmySQLを使用するとのことですが事情によりPostgreSQLを使用しています。
PostgreSQL用のアダプタやActiveRecordを使用に当たって必要な拡張ライブラリはインストールしました。
以下のようにDBを作成するrakeファイルを作成しました。
env = ENV['RAILS_ENV'] || 'development'
database = "memopad_#{env}"
task :connect_db => [:environment] do
ActiveRecord::Base.establish_connection(
:adapter => 'postgresql',
:host => 'localhost',
:username => 'postgres',
:database => 'postgres'
)
end
task :setup_db => [:connect_db] do
ActiveRecord::Schema.define do
create_database database;
end
end
しかしこのファイルを実行した結果は以下のの通りです。
(in /Users/***/Documents/workspace/memopad)
/Users/***/Documents/workspace/memopad/config/boot.rb:20:Warning: Gem::SourceIndex#search support for String patterns is deprecated, use #find_name
-- database("memopad_development")
rake aborted!
undefined method `create_database' for #<ActiveRecord::ConnectionAdapters::PostgreSQLAdapter:0x2560f98>
これはどのような問題が起きていてどのように解決すれば良いのでしょうか?
>undefined method
メソッドが見つからない・・・インストールミスかとも思ったのですが、
どうもRailsの具合のほうが良くない(バグと言って良いのか?)らしくて、
create_databaseメソッドが使えないらしいので、
Execute で CREATE DATABASE を実施するという手段で対処してみてください。
execute "CREATE DATABASE 名前"
LOCATION や TEMPLATE、ENCODING などのオプションがあれば適宜加えてください。
以上、真の原因追求ではなく、とりあえずの回答で申し訳ないのですが・・・。
ありがとうございました。