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

时间:2015-06-13 22:30:47

标签: ruby-on-rails postgresql rake

如何在psql中正确创建postgres db for Rails app,而不是通过rake db:create

我的意思是,我总是可以写CREATE DATABASE project_name,但我不知道幕后任务中发生了什么。也许还有很多额外的params

更新

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

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

2 个答案:

答案 0 :(得分:1)

如果在pgadmin III上选择db,它将显示带有本地内容的sql指令。如果你有全文索引,它们是非常重要的。您必须从数据库postgres中运行它们。

答案 1 :(得分:0)

Rails期望表名称与模型名称匹配,但是复数和snake_case。例如,User模型将记录存储在users表中,而BlogEntry模型将记录存储在blog_entries表中。

Rails希望表的主键名为id,并且它希望外键匹配模型名称但是为snake_case并以_id结尾。例如,如果BlogEntry belongs_to User,则Rails会希望blog_entries表格具有user_id列。

连接表(例如用于多对多关系)预计将以两个模型命名。多个蛇案例和字母顺序的名称。例如,描述用户模型和博客模型之间多对多关系的连接表应该具有名称blogs_users,并且至少包含列blog_id和{ {1}}。

这些是基础知识。当然,所有这些都是可配置的:例如,您可以使用user_id类方法告诉模型使用具有不同名称的表,以及关系方法(table_name,{{1所有选项都可以指定不同的名称。

除了这些命名约定外,只要在belongs_to中指定了正确的凭据和配置,Rails就不需要数据库中的任何特殊内容。