2

私はRailsを学んでいて、すべてを開始してインストールしたときに、読んでいた本に基づいてsqlite3を使用しました。ただし、herokuで作成したテストアプリをデプロイしようとしていました。Herokuは、微妙なバグを防ぐために、アプリが開発と本番用にpostgresqlを実行することをお勧めします。そこで、今後、すべてのRailsアプリにpostgresqlを使用することにしました。

これを行うために、次の設定を行いました
。1)Postgresqlをダウンロードしてインストールしました。2)
.bash_rcファイルにフォルダーへのパスを追加しました
。3)pg gemをインストールしました
。4)これまでのところすべてが良好でした。ただし、アプリのルートフォルダーに移動して、次のコマンドを試してみてください。

rails generate scaffold User name:string email:string

コンソールで次のエラーが発生します

rails generate scaffold User name:string email:string

invoke  active_record 
/Users/AM/.rvm/gems/ruby-1.9.2-p290/gems/bundler-
1.0.22/lib/bundler/rubygems_integration.rb:143:in `block in replace_gem': 
Please install the sqlite3 adapter: `gem install activerecord-sqlite3-adapter` 
(sqlite3   is not part of the bundle. Add it to Gemfile.) (LoadError)
from /Users/AM/.rvm/gems/ruby-1.9.2-p290/gems/activerecord- 
3.2.1/lib/active_record/connection_adapters/sqlite3_adapter.rb:3:in `<top (required)>'

これは、私のRailsアプリのデフォルト設定がsqlite3用であることを明確に示しています。そこで、databse.ymlファイルとこれが持っていたものを開きました。

# SQLite version 3.x
#   gem install sqlite3
#
#   Ensure the SQLite 3 gem is defined in your Gemfile
#   gem 'sqlite3'
development:
  adapter: sqlite3
  database: db/development.sqlite3
  pool: 5
  timeout: 5000

# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
  adapter: sqlite3
  database: db/test.sqlite3
  pool: 5
  timeout: 5000

production:
  adapter: sqlite3
  database: db/production.sqlite3
  pool: 5
  timeout: 5000

すべてがsqlite3用にセットアップされました。デフォルトでデータベースのすべての構成がpostgresql用になるように、Rails設定を変更するにはどうすればよいですか?

ありがとう

4

2 に答える 2

6

更新:チェックアウト - http://railscasts.com/episodes/342-migrating-to-postgresql

database.yml ファイルの設定を変更するだけで、何を使用したいかがわかります。あなたの場合、アダプターとデータベースを変更したいと思うでしょう:

development:
  adapter: postgresql
  database: my_app_dev
  username: username
  password: pw

そこにそれを入れたら、次を実行して、sqlite で持っていたものと一致させることができます。

rake db:create && rake db:schema:load
于 2012-04-25T23:07:12.450 に答える