在Rails中使用Sqlite3测试数据库和Postgres开发/生产数据库
在Rails中使用Sqlite3测试数据库和Postgres开发/生产数据库
我目前有一个Rails项目,部署到一个使用Postgres数据库的生产服务器上。我在Windows上开发我的Rails项目,这意味着如果我想在本地测试,我必须将database.yml文件中的所有数据库从postgres改为sqlite3(因为设置Windows运行postgres服务器似乎很麻烦)。
我想要做的是像这样格式化我的database.yml文件:
开发环境:
适配器:postgresql
编码:utf8
数据库:<%= begin IO.read(“/home/www-data/.db/.dev_name”)rescue“”end %>
池:5
用户名:<%= begin IO.read(“/home/www-data/.db/.user”)rescue“”end %>
密码:<%= begin IO.read(“/home/www-data/.db/.pass”)rescue“”end %>
#警告:当您运行“rake”时,“test”定义的数据库将从开发数据库中清除并重新生成。
#不要将此数据库设置为与开发或生产相同。
测试环境:
适配器:sqlite3
数据库:db/test.sqlite3
池:5
超时:5000
生产环境:
适配器:postgresql
编码:utf8
数据库:<%= begin IO.read(“/home/www-data/.db/.prod_name”)rescue“”end %>
池:5
用户名:<%= begin IO.read(“/home/www-data/.db/.user”)rescue“”end %>
密码:<%= begin IO.read(“/home/www-data/.db/.pass”)rescue“”end %>
这样我就可以在本地使用sqlite3数据库运行rails s -e test
进行测试,但当我部署到开发和生产服务器时,我可以使用postgres。
我遇到的问题是,使用上述更改的database.yml文件时,当我在本地运行rails s -e test
时,我会收到一个错误,说rails无法找到pg gem,这似乎意味着它仍然尝试使用开发或生产服务器。