📜  Ruby on Rails-数据库设置(1)

📅  最后修改于: 2023-12-03 14:47:08.820000             🧑  作者: Mango

Ruby on Rails 数据库设置

在 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 中管理数据库。你可以编写数据库迁移文件,通过简便的方式进行数据库操作。并且可以在配置文件中更改相应的数据库信息。

参考文献: