Rails Heroku数据库人口

时间:2011-06-16 07:23:50

标签: ruby-on-rails database ruby-on-rails-3 sqlite heroku

在部署Heroku的应用程序后,我无法在数据库中填充我需要的一些数据。我运行了heroku rake db:populate,它确实创建了初始管理员用户,但未能将其余数据放入。

我使用本地磁盘中的文件填充数据库。我怀疑问题是由于它在sample_data.rake文件中列出的目录中没有看到任何内容,因为它在我的硬盘而不是服务器上。我怎么能绕过这个?

我认为我必须托管所有文件并将目录更改为servers目录,或者找到解决方法。我想有一种简单的方法可以将数据库从我的电脑移到heroku?我显然对此很陌生。

谢谢!

3 个答案:

答案 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")