如何手动为 Rails 应用程序创建 postgres 数据库?

How to create postgres database for Rails app manually?

如何在 psql 中而不是通过 rake db:create 正确地为 Rails 应用程序创建 postgres 数据库?

我的意思是,人们总是可以写 CREATE DATABASE project_name,但我不知道引擎盖下的 rake 任务发生了什么。可能还有很多额外的params.

更新

第一次回答后我决定澄清:我知道如何编写和使用迁移,它们很棒,但我的问题不是关于它们。这是关于 rake db:create 任务和 pg 适配器。

换句话说,我只想知道psql中的哪个命令等于rake db:create

如果您 select pgadmin III 上的数据库,它将向您显示 sql 说明以及要加载的本地内容。如果您有全文索引,它们就非常重要。您必须 运行 他们来自数据库 postgres。

Rails 期望 table 名称与型号名称匹配,但应为复数且 snake_case。例如,User 模型将记录存储在 users table 中,而 BlogEntry 模型将记录存储在 blog_entries table.

Rails 期望 table 的主键被命名为 id 并且它期望外键与模型名称匹配但是是 snake_case 并以 _id。例如,如果 BlogEntry belongs_to 用户,Rails 将期望 blog_entries table 有一个 user_id 列。

Join tables(例如用于多对多关系)预计将以两个模型的名称以复数蛇形和字母顺序命名。例如,描述用户模型和博客模型之间多对多关系的联接 table 应具有名称 blogs_users 并且至少具有列 blog_iduser_id.

这些是基础知识。当然,所有这些都是可配置的:例如,您可以使用 table_name class 方法来告诉模型使用具有不同名称的 table,并且关系方法 (belongs_tohas_many 等)都采用允许您指定不同名称的选项。

除了这些命名约定 Rails 不需要数据库中的任何特殊内容,只要在 config/database.yml 中指定了正确的凭据和配置即可。