📅  最后修改于: 2023-12-03 14:47:08.820000             🧑  作者: Mango
在 Ruby on Rails 中,数据库是应用程序的一个重要组成部分。Rails 提供了简便的方式从数据库中创建,读取,更新和删除数据,并且支持多种不同的数据库,如 MySQL,PostgreSQL 等等。
Rails 将数据库配置信息存储在 config/database.yml 文件中。这个文件默认会在 Rails 应用程序初始化时自动生成,你可以在其中编辑数据库配置信息。
# config/database.yml
default: &default
adapter: postgresql
encoding: unicode
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
host: <%= ENV['DATABASE_HOST'] %>
username: <%= ENV['DATABASE_USERNAME'] %>
password: <%= ENV['DATABASE_PASSWORD'] %>
development:
<<: *default
database: myapp_development
test:
<<: *default
database: myapp_test
production:
<<: *default
adapter: postgresql
encoding: unicode
pool: 5
database: myapp_production
username: myapp_user
password: <%= ENV['MYAPP_DATABASE_PASSWORD'] %>
在这个配置文件中,我们可以看到 Rails 默认使用 PostgreSQL 作为数据库,可以在 adapter
中配置更改为其他数据库。
正如我们在示例中所示,可以通过 database
配置来指定相应的数据库名称。在开发环境和测试环境中,可以直接在这里进行指定。而在生产环境中,需要直接设置环境变量中的 database_url
配置项来进行指定。
在 Rails 中,我们可以使用数据库迁移来管理数据库的演进。当我们修改模型,增删表等操作时,就可以使用数据库迁移进行同步数据库结构。
以下命令将生成一个新的数据库迁移文件:
$ rails generate migration AddPartNumberToProducts part_number:string
这个命令将生成一个名为 AddPartNumberToProducts
的迁移文件,它将向 products
表中增加一个名为 part_number
的字段。
class AddPartNumberToProducts < ActiveRecord::Migration[6.1]
def change
add_column :products, :part_number, :string
end
end
在迁移文件中,我们可以通过 change
方法来定义迁移的操作。当我们运行迁移时,Rails 会自动执行 change
方法中的内容,来迁移数据库。
$ rails db:migrate
该命令将按照时间顺序运行所有待迁移(尚未完成)的change
方法文件。
在本文中,我们介绍了如何在 Rails 中管理数据库。你可以编写数据库迁移文件,通过简便的方式进行数据库操作。并且可以在配置文件中更改相应的数据库信息。
参考文献: