我可以从我的个人网络服务器使用mysql数据库而不是heroku的数据库吗?

我将生产数据库配置为:

production:
    adapter: mysql2
    database: somedatabase
    username: someusername
    password: somepassword
    host: 1.1.1.1:1234

但是,这不起作用,我的应用程序仍然使用heroku的共享数据库.

推荐答案

这很古老,但如果有人来找答案,这比使用gem容易得多.只需提供DATABASE_URLSHARED_DATABASE_URL(不确定是否需要第二个).数据库url格式为adapter://username:password@hostname:port/database,例如,您可以执行以下操作:

heroku config:add DATABASE_URL=mysql://etok:somepassword@<your-server>:3306/etok
heroku config:add SHARED_DATABASE_URL=mysql://etok:somepassword@79.101.41.213:3306/etok

然后重新部署你的apply.它将读取你的DATABASE_URL并生成数据库.yml从那开始.默认端口已经是3306,因此在您的 case 中,url中不需要它.部署时,您可能会注意到它会生成数据库.yml:

-----> Writing config/database.yml to read from DATABASE_URL

然后设置好(只要服务器接受来自heroku主机的连接).

Ruby-on-rails相关问答推荐

如何测试自定义路由?

确定当前太平洋时区是PST还是PDT

Rails文档的悲观锁定示例中的争用条件

合成轨道布局

一对多关联 counter_cache 在 Rails 中无法正确重新加载

Sweet Alert 2 在 Rails 7 应用程序中无法正常工作

如何保持 en.yml DRY?

URL 中的 Rails slugs - 使用 Active Record Model Post 的 Title 属性而不是 ID

验证以确保唯一性但忽略空值?

使用 rails 3.1.0 和 ubuntu 安装 Nokogiri 1.5.0 时出错

在 Ruby on Rails 中获取空临时目录的最佳方法是什么?

Rails Mailer Net::OpenTimeout: execution expired 仅在生产服务器上出现异常

机械师 vs FactoryGirl - 优点和缺点

如何从 ActiveRecord 中的每个组中获取最新记录?

如何在 ROR (Ruby) 中显示 PDF?

我们如何在 Rails Mailer 中设置邮箱发件人的名称?

ruby 方法名称中的变量

用于在多行上链接调用的 Ruby 约定

Ruby 更新后:测试失败,assets资源 未声明为在生产中预编译

在 Rails 中显示主机名和数据库名