如何将 Rails 应用程序数据库从 PostgreSQL 切换到 SQLite
在开展 `Rails` 项目时,可能会出现需要将数据库从 `PostgreSQL` 切换到 `SQLite` 的情况。
“SQLite” 是轻量级的,不需要设置服务器,是开发或小型项目的绝佳选择。本指南将逐步指导您完成整个过程。
介绍
在 Rails 项目中更改数据库似乎很困难,但“Rails”的灵活性使它成为一项简单的任务。通过遵循以下步骤,您将无缝地从“PostgreSQL”过渡到“SQLite”。
更新 Gemfile
首先,在 Gemfile 中将 PostgreSQL gem(`pg`)替换为 SQLite gem(`sqlite3`)。操作如下:
# Remove or comment out: # gem 'pg' # Add: gem 'sqlite3', '~> 1.4'
更新后,运行以下命令来安装新的依赖项:
bundle install
输出

更新数据库配置
接下来,更新您的 `config/database.yml` 文件以将 `SQLite` 配置为您的数据库适配器。以下是示例配置:
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
此配置将“SQLite”定义为所有环境(开发、测试和生产)的适配器。
更新依赖项
确保您的应用程序代码不使用 PostgreSQL 特有的功能(如 uuid、JSONB 字段或特定 SQL 查询)。必要时进行重构。
与“PostgreSQL”相比,SQLite 具有不同的功能。您需要确保您的应用程序不依赖于 PostgreSQL 特定的功能,例如:
仔细检查您的应用程序代码和迁移中是否存在任何 PostgreSQL 特定的功能,并根据需要进行重构。
运行依赖项
更新“Gemfile”后,通过运行以下命令确保安装了所有必需的 gem:
bundle install
输出

重新创建结构
rails db:create rails db:migrate
输出

测试你的应用程序
一切设置完成后,启动你的 Rails 服务器:
rails server
彻底测试您的应用程序,以确保一切按预期运行。请注意“SQLite”与“PostgreSQL”中可能存在差异的任何功能或查询。
结论
将您的 Rails 项目从“PostgreSQL”切换到 SQLite 可以简化您的开发或小规模应用程序的设置。
“SQLite” 的轻量级和无服务器设计使其成为快速迭代和测试的理想选择。虽然 PostgreSQL 在生产环境中表现出色,但当简单性和可移植性成为关键时,SQLite 就会大放异彩。
完毕
让我们建立联系
Github
开发