You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行rails db:system:change后rails server与db:migrate失效求助

解决Rails本地连接PostgreSQL导致的无限加载/迁移问题

核心解决方案

  • 打开项目根目录下的config/database.yml文件
  • 将配置替换回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
  • 保存文件后,执行rails db:create(如果本地开发数据库还未创建)
  • 重新运行rails server或rails db:migrate即可正常使用

问题原因

rails db:system:change --to=postgresql命令会同时修改两个关键文件:

  1. Gemfile:自动替换sqlite3 gem为pg
  2. config/database.yml:将数据库适配器从sqlite3改为postgresql

你只手动改回了Gemfile的配置,但database.yml仍保留着PostgreSQL的连接设置。本地默认没有启动PostgreSQL服务或对应数据库,程序尝试连接时就会陷入无限等待,引发浏览器加载超时、迁移命令挂起的问题。

验证步骤

改完配置后,执行rails db:migrate应该能快速完成,启动rails server后,本地浏览器访问http://localhost:3000可以正常加载页面。

内容的提问来源于stack exchange,提问作者myself

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 08:12:17