我制作了一个 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中配置呢?
答案 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