【问题标题】:Switching from SQLite3 to Postgresql in the midst of development to accommodate Thinking Sphinx在开发过程中从 SQLite3 切换到 Postgresql 以适应 Thinking Sphinx
【发布时间】:2011-09-05 01:35:39
【问题描述】:

我已经在应用程序上完成了一定数量的工作,并且我正在着手实现思考狮身人面像和搜索功能。 TS 需要 mySQL 或 Postgresql 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 能工作吗? (您可以使用 psql 或 pgAdminIII 连接到数据库吗?)现在最好不要在部署前 3 天切换。
  • @Catcall -- 我可以使用 SQL shell (psl) 命令提示符连接到数据库,并且可以启动 pgAdminIII 并修改 dbs。我对 SQL 命令/设置一无所知,所以我正处于早期的颠簸阶段;试图得到我的限制。

标签: ruby-on-rails postgresql sqlite


【解决方案1】:

你的意思是要在PostgreSQL上开发,然后在Sqlite3上部署?这行不通。

这两个是非常不同种类的存储引擎。 Sqlite 只是一个方便的库,用于存储数据并使用 SQL 的某个子集访问它。 Postgres 是一个功能齐全的数据库服务器——它需要被安装,它本身需要一个用户,作为一种服务工作,最好是在一台专用的物理计算机上。 Postgres 非常强大、快速且可靠,但也需要大量学习才能驯服它。

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

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

【讨论】:

  • 不,我的意思是我一直在使用 sqlite3 进行开发,但想将我的开发数据库切换到 postgres,我也将用于部署。我一直在通过 postgresql 文档给自己上一个速成课程,并且急切地寻找其他一些与 postgres 和 rails 开发有关的教程。
  • 您在您的问题中写道:“我听说使用与您将部署的相同类型的数据库进行开发会更好。虽然我可以猜测为什么,但有人愿意详细说明为什么会这样是首选。”。这让我觉得你只想这样做。
  • 啊,我明白了,很抱歉造成混乱!
【解决方案2】:

我想你想要这样的东西

sqlite3 development.sqlite3 .dump | psql -h localhost -p 5432 -U postgres -W database-development

【讨论】:

    【解决方案3】:

    当您的开发和部署在同一个平台上时,被意外搞砸的机会会减少 ;) 所以使用相同的数据库而不是以后遇到问题总是好的

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-10
      • 2013-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多