人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

RailsのActiveRecord使用したDB作成について質問です。

現在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>

これはどのような問題が起きていてどのように解決すれば良いのでしょうか?

●質問者: o8o
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:ActiveRecord Adapter base config DB
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● kn1967
●60ポイント

>undefined method

メソッドが見つからない・・・インストールミスかとも思ったのですが、

どうもRailsの具合のほうが良くない(バグと言って良いのか?)らしくて、

create_databaseメソッドが使えないらしいので、

Execute で CREATE DATABASE を実施するという手段で対処してみてください。


execute "CREATE DATABASE 名前"

LOCATION や TEMPLATE、ENCODING などのオプションがあれば適宜加えてください。


以上、真の原因追求ではなく、とりあえずの回答で申し訳ないのですが・・・。

◎質問者からの返答

ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ