【发布时间】:2015-02-08 08:21:46
【问题描述】:
我有一个使用 SQLite 开发的简单 Sinatra 应用程序。该数据库是一个简单的两列表:一个 ID 和一个字符串条目。
我想将此应用程序部署到 Heroku。将 SQLite 数据库转换为 PostgreSQL 最不痛苦的方法是什么,了解部署到 Heroku 需要 PostgreSQL。
【问题讨论】:
标签: ruby sqlite postgresql heroku sinatra
我有一个使用 SQLite 开发的简单 Sinatra 应用程序。该数据库是一个简单的两列表:一个 ID 和一个字符串条目。
我想将此应用程序部署到 Heroku。将 SQLite 数据库转换为 PostgreSQL 最不痛苦的方法是什么,了解部署到 Heroku 需要 PostgreSQL。
【问题讨论】:
标签: ruby sqlite postgresql heroku sinatra
对于简单的用例,heroku db:push 会将您的本地 sqlite 数据库推送到您的 Heroku Postgres 数据库中。
值得考虑切换到在本地使用 Postgres,然后使用 heroku db:pull 将数据库从 Heroku 带回您的新本地 postgres 实例。
我需要注意的是,虽然 heroku db:pull 适用于 SIMPLE 数据库,但一旦您开始使用更复杂的 Postgres 数据类型,那么您需要使用类似 heroku pg:transger 之类的东西,它仅适用于 Postgres > Postgres。
【讨论】:
使用taps gem,如this Railscast 所示。
【讨论】:
首先,您需要在本地计算机上安装 Postgres,以便您可以进行更改并轻松部署到 heroku。其次,您需要从 SQLite 迁移到 Postgres。我刚刚按照 Heroku 的说明为我自己的 Rails 应用程序进行了迁移,只用了不到 5 分钟。看起来很简单。
迁移的说明是here(甚至还有在本地安装 Postgres 的说明)。然后你可以关注 Heroku getting started guide 其余的。
【讨论】: