如何手动为 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_id
和 user_id
.
这些是基础知识。当然,所有这些都是可配置的:例如,您可以使用 table_name
class 方法来告诉模型使用具有不同名称的 table,并且关系方法 (belongs_to
、has_many
等)都采用允许您指定不同名称的选项。
除了这些命名约定 Rails 不需要数据库中的任何特殊内容,只要在 config/database.yml
中指定了正确的凭据和配置即可。
如何在 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_id
和 user_id
.
这些是基础知识。当然,所有这些都是可配置的:例如,您可以使用 table_name
class 方法来告诉模型使用具有不同名称的 table,并且关系方法 (belongs_to
、has_many
等)都采用允许您指定不同名称的选项。
除了这些命名约定 Rails 不需要数据库中的任何特殊内容,只要在 config/database.yml
中指定了正确的凭据和配置即可。