1

我正在尝试设置 Heroku 应用程序,但使用的是 Xeround DB。我发现的说明有点混乱:

http://xeround.com/developers/heroku-cloud-database-mysql/ 我正在尝试遵循第二种方式,直接在 Xeround 上创建数据库。

我的疑问是:

  • 是否需要 Xeround 插件?至少 heroku addons:add xeround –app xxxx 说:该插件仅对选定的用户可用

  • Heroku DATABASE_URL 需要设置为:mysql://username:password@host:port/database 我看过一些关于 mysql2 和 mysql 的帖子(无论如何都没有对我有用)。我的 gem 文件有 mysql2, 0.2.7 (for Rails 3.0.x)

  • 我可以看到 config var ok,但是 Heroku config --app xxx 仍然显示 SHARED_DATABASE_URL => postgres://pjyqfgjcbn:.... 可以吗?

然后从说明来看,第 5 步真的很令人困惑,不清楚该部分是否是可选的(我希望它是)。如果它是强制性的,它不会告诉它必须添加到哪个文件......

我的目标是创建一个新的 Heroku 应用程序,推送我现有的应用程序,将其设置为使用 Xeround DB,然后运行 ​​Heroku rake db:schema:load 但无论我尝试什么,我都会得到:

耙中止!数据库配置未指定适配器

任何想法如何设置它?

对 Rails 3.0.5 做同样的事情,但有一些问题和评论。适配器是mysql还是mysql2?Xeround 上关于设置站点的示例是 mysql://username:password@host:port/database

mysql2 是与 Rails 3 一起使用的正确 gem(mysql 0.2.7 用于 3.0.x,最新用于 3.1),但 url 中的名称可能只是他们选择的名称。我猜你的工作,但仍然......</p>

我想不需要 Heroku 的 Xeround 插件吧?heroku addons:add xeround –app xxxx 说这个插件只对选定的用户可用

最后,当我尝试迁移时,以 db url 的名称使用 mysql 或 mysql2 我得到:

耙中止!数据库配置未指定适配器

确实问过 Heroku 但还没有答案……</p>

4

1 回答 1

1

我一直在将 Xeround 用于托管在 Heroku 上的几个应用程序。

我没有使用 Rails 的具体经验。仅限 Sinatra... 但希望这对您有所帮助。

我不使用插件。自己通过 Xeround 设置帐户的成本更低。

像连接任何 MySQL 数据库一样连接到它......

连接字符串看起来就像你说的:mysql://username:password@host:port/database

主机/端口由 Xeround 在 admin 数据库中提供。数据库名称将是您在 phpMyAdmin 中设置的任何名称。用户/通行证不是您的 Xeround 帐户凭据。它们是您为该数据库实例设置的凭据。

例如...如果您的 ORM 是 Datamapper... 执行以下操作:

DataMapper.setup(:default, ENV['XEROUND_CONN'])

或者,如果您使用的是 Sequel:

DB = Sequel.connect(ENV['XEROUND_CONN'])

然后你需要设置你的 XEROUND_CONN(或任何你想叫它的)ENV 变量。

使用 Heroku 命令执行此操作

heroku config:add XEROUND_CONN='mysql://username:password@host:port/database'

警告: Datamapper 与 Xeround 存在问题。Datamapper 不支持设置存储引擎(myisam..etc..)。Xeround 使用他们自己的定制 Xeround 存储引擎。所以...由于存储引擎的差异,我在运行 auto_migrate 时遇到了麻烦。

于 2012-01-17T15:41:42.530 回答