【问题标题】:How do I switch the database used in a Rails application?如何切换 Rails 应用程序中使用的数据库?
【发布时间】:2013-06-07 14:35:13
【问题描述】:

我有一个基于Devise cancan repo 的应用程序。目前它使用 SQLite3 作为其数据库。

我想知道有人如何将系统更改为 MongoDB 或 SQL 数据库之类的东西?

而且,如果我这样做,会在本地使用应用程序时产生问题吗?

【问题讨论】:

  • 您尝试了哪些方法,哪些方法不起作用?如果您不知道database.yml 文件在哪里,或者您遇到了更难的问题,您的问题并不清楚。
  • Rails 和任何经过精心设计的应用程序都会将配置数据与代码分开,从而可以轻松重新配置。 Rails 对 database.yml 文件的使用使得更改数据库引擎或它们运行的​​主机变得非常容易。文件是 YAML 的额外好处是很容易让其他应用程序通过加载相同的文件重用相同的配置。进行更改,所有受影响的应用都会继承它。

标签: sql ruby-on-rails ruby mongodb


【解决方案1】:

安装并配置另一个数据库服务器,然后编辑config/database.yml 文件以指向它。您还需要在您的 gemfile 中包含所选适配器的相关 gem:

# database.yml
development:
  adapter: postgresql
  database: my_database
  host: localhost
  username: username
  password: password

# gemfile
gem 'pg'

【讨论】:

    【解决方案2】:

    您可以轻松更改为 MySQL 或 PostgreSQL。

    更改您的 database.yml 文件,为您的数据库创建并运行迁移。如果您想移动现有数据,可以将其导出到 SQL 文件并导入,或者有 gem 可以为您执行此操作。

    对于 PostgreSQL,您的 database.yml 将如下所示。

    development:
      adapter: postgresql
      encoding: unicode
      database: app_development
      pool: 5
      username:
      password:
    

    不要忘记将 pgmysql2 gem 添加到您的 Gemfile。

    对于 MongoDB,您可以使用 Mongoid,它与 Active Record 不同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-27
      • 1970-01-01
      相关资源
      最近更新 更多