如何将开发数据库转移到生产?

时间:2014-09-23 21:38:13

标签: database heroku sinatra

我制作了一个 Sinatra 应用,现在我正尝试将其部署到 Heroku 。 我的应用程序适用于 PostgreSQL 数据库。在我的表格中有数据是我在开发期间编写的。我在本地运行它时渲染得很好。但是,当我部署我的应用程序时,我的记录不会被转移。我知道这种行为是正常的,但我找不到如何将我的记录转移到生产中(数据库设置正确,你可以通过表格交互式添加内容)。

这是我的 environment.rb

configure :production, :development do
    db = URI.parse(ENV['DATABASE_URL'] || 'postgres://localhost/lakesare')
    ActiveRecord::Base.establish_connection(
    :adapter => db.scheme == 'postgres' ? 'postgresql' : db.scheme,
    :host => db.host,
    :username => db.user,
    :password => db.password,
    :database => db.path[1..-1],
    :encoding => 'utf8'
    )
end 

我试过了

heroku pg:push $my_db_name HEROKU_POSTGRESQL_OLIVE_URL

并且它成功运行,但我的记录仍未出现在生产数据库中。我做错什么了吗? 我会使用 seeds.rb 之类的东西,但是如何在Sinatra中配置呢?

2 个答案:

答案 0 :(得分:1)

如果您有种子文件,可以heroku run ruby seeds.rb。这假设种子文件位于应用程序的根目录中。你可以运行几乎任何你可以在heroku服务器上本地运行的命令,方法是在heroku run前加上它。

答案 1 :(得分:0)

对我有用的唯一解决方案是编写一些填充数据库的函数,将它们添加到 db 文件夹中的 seeds.rb ,将其部署到Heroku并运行

heroku run rake db:schema:load
heroku run rake db:seed