【问题标题】:"rails server" using the wrong database“rails server”使用了错误的数据库
【发布时间】:2012-03-26 14:53:54
【问题描述】:

我最近将一个相对较新的 rails 应用程序从 sqlite3 切换到 Amazon RDS,并将我的 database.yml 文件配置为仅在生产环境中使用 RDS 数据库。

但是现在,每当我尝试对我的数据库执行任何本地操作(例如 rails serverrails consolerake db:migrate 等)时,它都会对 Amazon 服务器上的生产数据库执行该操作,而不是我的本地 sqlite3 DB,这是我的开发数据库。

# database.yml

development:
    adapter: sqlite3
    database: db/development.sqlite3
    pool: 5
    timeout: 5000

test:
    adapter: sqlite3
    database: db/test.sqlite3
    pool: 5
    timeout: 5000

production:
    adapter: mysql2
    host: mydb.mydbhost.us-east-1.rds.amazonaws.com
    reconnect: false
    database: mydb
    username: myusername
    password: mypassword

我做错了什么?

更新:这是我的 environment.rb 文件:

# environment.rb

# Load the rails application
require File.expand_path('../application', __FILE__)

# Heroku environment variables for local use
heroku_env = File.join(Rails.root, 'config', 'heroku_env.rb')
load(heroku_env) if File.exists?(heroku_env)

# Initialize the rails application
Myapp::Application.initialize!

【问题讨论】:

  • 查看是否有一个名为 RAILS_ENV 的环境变量以及它是否被定义为生产环境变量。你可以打开一个 shell 并输入 echo $RAILS_ENV
  • 不,没有 $RAILS_ENV 环境变量 :(

标签: ruby-on-rails database amazon-rds


【解决方案1】:

花了一天时间解决问题后才发现问题。这是我的一个愚蠢的错误,但我想我会发布解决方案以防其他人遇到类似问题。

从上面的 environment.rb 文件中可以看出,我有一个 heroku_env.rb 文件,其中包含我本地机器上的所有 Heroku 特定环境变量,用于开发目的。在该文件中,我声明了一个 ENV['DATABASE_URL'] 变量,它链接到我的 Amazon RDS 数据库。从文件中删除它解决了这个问题!

感谢所有提供答案的人!

【讨论】:

  • 嘿,只是为了帮助你,Heroku 的所有应用程序都可以通过 heroku 命令行进行配置,使用它可能比使用初始化程序更好,我们的工作流程是使用 ENV[' something'] = .rvmrc 中的某些内容,然后在 heroku 上复制所有这些环境设置。然后让初始化程序将这些 ENV[''] 设置读入常量以在应用程序中使用。也不要忘记在读取 ENV 时冻结它们以避免运行时问题。
【解决方案2】:

你没有使用制作设置

试试

rails s -e production

RAILS_ENV=production rails s

RAILS_ENV=production rake db:migrate

【讨论】:

  • 谢谢,但我并没有尝试使用生产数据库,我想使用开发数据库,​​并且出于某种原因,每当我在本地计算机上运行 rails s 时,它都会使用生产数据库。
  • 你能发布你的 .rvmrc 吗?假设你有一个?
  • 我实际上没有——这可能是问题所在吗?
  • 不,可能不是。我只是想确保那里的环境没有意外设置。
  • 你能确认你的应用在运行时rails s是作为开发环境运行的吗?这将有助于将问题隔离为数据库配置。
猜你喜欢
  • 1970-01-01
  • 2014-10-24
  • 2019-12-27
  • 2016-04-18
  • 2021-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多