试图用Postgres替换SQLite,似乎我在错误的目录中?

时间:2013-12-11 15:23:35

标签: ruby-on-rails sqlite postgresql heroku

我现在已经和Heroku部署同样的问题两天了。所以我考虑过尝试使用OpenShift,但我正在阅读Michael Hartl的Ruby On Rails教程,第二版,你可能都知道,他们使用的是Heroku。我的错误已深入并且涉及到很多,所以我考虑重新开始,但我觉得我最终会回到这个问题。

目前,我读到:https://devcenter.heroku.com/articles/sqlite3

  

如果您要启动新的Rails应用程序,可以通过运行以下命令使postgres成为默认数据库:

$ rails new -d postgresql

当我这样做时,这就是我所遇到的:

$ rails new -d postgresql
Can't initialize a new Rails application within the directory of another, please change to a non-Rails directory first.

1 个答案:

答案 0 :(得分:1)

$ rails new

初始化一个新的Rails应用程序。如果您已经有一个现有的Rails应用程序,并且想要切换到PostgreSQL,请跳过它,只需更新Gemfile。

编辑您的Gemfile并删除此行:

gem 'sqlite3'

替换为此行:

gem 'pg'

您还需要按照文章中的说明更新配置文件。 Heroku文章Getting Started with Rails介绍了如何转换现有应用。

此外,您必须在本地安装PostgreSQL,创建数据库并重新加载架构。您将找到几篇文章,其中包含执行此类任务所需的命令列表。

如果您使用SQLite进行开发并使用PostgreSQL进行生产,则可能会避免在本地安装PostgreSQL,但不建议这样做。