在部署Heroku的应用程序后,我无法在数据库中填充我需要的一些数据。我运行了heroku rake db:populate,它确实创建了初始管理员用户,但未能将其余数据放入。
我使用本地磁盘中的文件填充数据库。我怀疑问题是由于它在sample_data.rake文件中列出的目录中没有看到任何内容,因为它在我的硬盘而不是服务器上。我怎么能绕过这个?
我认为我必须托管所有文件并将目录更改为servers目录,或者找到解决方法。我想有一种简单的方法可以将数据库从我的电脑移到heroku?我显然对此很陌生。
谢谢!
答案 0 :(得分:12)
heroku命令已更改。现在它应该是:
heroku run rake db:push
heroku pg:reset DATABASE
heroku run rake db:seed
也可以通过安装tap gem并从本地PostgreSQL db推送数据,将本地数据库中的数据上传到heroku。
gem install taps
heroku db:push
答案 1 :(得分:9)
如果您有一个干净的本地数据库(即只是好东西,没有愚蠢的测试数据),那么您可以尝试heroku db:push
:
db:push [<database_url>]
#将本地数据库推送到应用程序的远程数据库
如果您打算使用Heroku共享或专用数据库,请记住在PostgreSQL上开发,在开发和生产环境中使用相同的数据库和版本(共享版本8.3,专用版本9.0)将为您节省痛苦,痛苦和困惑。
参考文献:
答案 2 :(得分:3)
我设置了开发数据库,并将其推送到Heroku。
rake db:reset
rake db:seed
heroku rake db:push
如果您使用默认的PostgreSQL,则另一个选项是
heroku pg:reset
heroku rake db:seed
我在seed.rb文件中使用以下内容:
require 'pathname'
RailsRoot = Pathname.new(RAILS_ROOT).expand_path
print "Loading data..."
fileData = File.read (RailsRoot + "db/data-file.csv")