ruby-on-rails – 在开发过程中从SQLite3切换到Postgresql以适应Thinking Sphinx

我已经在应用程序上做了一些工作,我正在接近思考sphinx搜索功能的实现. TS需要运行MysqLPostgresql db,所以我希望将我的开发转换为Postgresql.

有许多很棒的资源可以帮助您在创建新的rails应用程序时切换到sqlite3
http://mikewilliamson.wordpress.com/2010/04/19/postgres-and-rails-for-mysql-people/和这里:http://www.funonrails.com/2011/03/getting-started-with-rails-3-postgres.html

但这些只是从绝对开始使用Postgresql.

我最初通过在我的本地机器和gem上安装postgresql来试一试

gem’pg’,:require => ‘PG’

并通过更改我的database.yml文件以适应postgresql与本地主机,用户名,密码和适配器的连接.但是,这没有用,我认为它是因为从一开始就没有从postgresql开始,它没有安装它需要的一些文件.

是否有一个很好的方法可以在开发过程中进行切换,或者它是否过于混乱并且会重新开始(这不会太糟糕,但并不理想.而且另一方面,我听说它更好使用与您部署的相同类型的数据库进行开发.虽然我可以猜测为什么,任何人都在关注为什么这是首选的?)

此外,作为第一次postgresql用户(和rails newb),看起来像使用postgresql进行开发比sqlite3的内置功能稍微复杂一点.交换机是否建议?或者我应该找到解决方法并坚持使用sqlite3

解决方法

你的意思是你想在Postgresql上开发然后在sqlite3上部署吗?这不行.

这两种是非常不同的存储引擎. sqlite只是一个方便的库,用于存储数据并使用sql的某个子集访问它. Postgres是一个功能齐全的数据库服务器 – 它需要安装,需要用户自己,作为服务工作,最好是在专用的物理计算机上. Postgres非常强大,快速和可靠,但也需要大量的学习来驯服它.

这两个存储引擎使用不同的sql方言.在一个中工作的查询通常会在另一个中失败,或者做一些微妙的不同,或者非常慢.

使用您部署的相同存储引擎进行开发并不是更好 – 这是唯一的方法.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...