如何在psql中正确创建postgres db for Rails app,而不是通过rake db:create
?
我的意思是,我总是可以写CREATE DATABASE project_name
,但我不知道幕后任务中发生了什么。也许还有很多额外的params
。
更新
在第一次回答之后,我决定澄清:我知道如何编写和使用迁移,它们很棒,但我的问题不是关于它们的。它涉及rake db:create
任务和pg
适配器。
换句话说,我只想知道psql
中的哪个命令等于rake db:create
。
答案 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就不需要数据库中的任何特殊内容。