gpt4 book ai didi

ruby-on-rails - Rails 应用程序默认为 sqlite3。我想默认使用 postgresql _ 如何更改

转载 作者:行者123 更新时间:2023-11-29 11:53:22 26 4
gpt4 key购买 nike

我正在学习 Rails,当我开始并安装所有东西时,我会根据我正在阅读的书籍使用 sqlite3。但是,我试图部署我在 heroku 上编写的测试应用程序。 Heroku 建议应用程序运行 postgresql 进行开发和生产,以防止细微的错误。所以我决定从此以后对我所有的 Rails 应用程序使用 post gresql。

为此,我进行了以下设置:
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 设置好我如何更改我的 Rails 设置,以便默认情况下所有数据库配置都用于 postgresql?

谢谢

最佳答案

更新:查看 - 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

关于ruby-on-rails - Rails 应用程序默认为 sqlite3。我想默认使用 postgresql _ 如何更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10324778/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com