1

我的 Rails 应用程序的数据库是 SQLite3,但我想将其更改为 MySQL。我需要做什么才能在我的应用程序中更改它?

这是我的应用程序中的 database.yml:

# SQLite. Versions 3.8.0 and up are supported.
#   gem install sqlite3
#
#   Ensure the SQLite 3 gem is defined in your Gemfile
#   gem 'sqlite3'
#
default: &default
  adapter: sqlite3
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  timeout: 5000

development:
  <<: *default
  database: db/development.sqlite3

test:
  <<: *default
  database: db/test.sqlite3

production:
  <<: *default
  database: db/production.sqlite3
4

1 回答 1

1

您需要将适配器更新到 MySQL2 并添加您的凭据。例如:

development:
  adapter: mysql2
  encoding: utf8mb4
  database: development
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  username: root
  password: password
  socket: /tmp/mysql.sock

查看官方文档以获取更多信息。

这是默认值:

default: &default
  adapter: mysql2
  timeout: 5000
  encoding: utf8mb4
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  socket: /tmp/mysql.sock

development:
  <<: *default
  database: development
  username: <%= ENV.fetch("username") %>
  password: <%= ENV.fetch("password") %>


test:
  <<: *default
  database: test
  username: username
  password: password

production:
  <<: *default
  database: production
  username: <%= ENV.fetch("username") %>
  password: <%= ENV.fetch("password") %>

您还可以像这样在数据库中编码username和:password

mysql://<username>:<password>@<host>:<port>/<db_name>

然后设置host. 不要把usernameandpassword放在你的 database.yml 文件中。

于 2020-06-20T17:43:55.477 回答