使用 Postgresql 数据库创建 Rails 3.1 应用程序 (OSX Lion)
我似乎无法找到使用 Postgresql 数据库创建新的 Rails 3.1 应用程序的最新指南。我非常感谢您对整个过程的指导。
I cant seem to find an up-to-date guide to creating a new Rails 3.1 app with a Postgresql database. I would greatly appreciate a guide through that process.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
从 Rails 3 开始,该框架完全与数据库无关。
这意味着,您需要做的就是两件事:
pg
gem:gem 'pg'
database.yml< /code> 文件使用
postgresql
作为适配器。您可以在创建新应用程序时通过附加
--database=postgresql
标志自动完成此操作:但如果您已经创建了该应用程序,则只需注释掉
gem 'sqlite3'< /code> 在 Gemfile 中,添加
gem 'pg'
,运行bundle
,然后更改database.yml
文件以使用正确的适配器。当然,不用说,您还需要安装 PostgreSQL 本身,但您可以在 google 上轻松找到它。
Since Rails 3, the framework is completely database-agnostic.
What that means is, all you have to do is 2 things:
pg
gem in your Gemfile:gem 'pg'
database.yml
file is usingpostgresql
as the adapter.You can accomplish this automatically when you create a new app by appending the
--database=postgresql
flag:But if you've already created the app, then just comment out
gem 'sqlite3'
in your Gemfile, add ingem 'pg'
, runbundle
, and then change yourdatabase.yml
file to use the correct adapter.Of course, it goes without saying that you will also need to install PostgreSQL itself, but that is something you can easily find on google.
详细说明bricker的答案...运行后:
这是您的database.yml的样子:
运行:
如果您安装了PostgreSQL,将为您创建数据库。安装 PostgreSQL 最简单的方法是 http://postgresapp.com/
To elaborate on bricker's answer... After running:
Here is what your database.yml will look like:
Running:
will create the databases for you if you have PostgreSQL installed. The easiest way to install PostgreSQL is http://postgresapp.com/
我发现您必须将上面示例中的用户名 - myapp 添加到 PostgreSQL 数据库,或者将用户名更改为现有用户。
I found you have to either add the username, in the example above - myapp, to the PostgreSQL database or change the username to an existing user.
从 Rails 4 开始,bricker 的答案不起作用,至少对我来说不起作用。
这个命令可以解决这个问题:
As of Rails 4, bricker's answer does not work, at least not for me.
This command does the trick instead: