当我部署到Heroku时,App Shell就在那里,但是表格数据丢失了

时间:2016-01-04 21:32:20

标签: ruby-on-rails heroku

我在本地开发了一个Book Review应用程序,然后推送到bitbucket,然后部署到Heroku。一切似乎都很顺利,但应用程序的Heroku版本缺少实际数据 - 如书籍,类别,用户等。我按照建议编辑了gemfile,所以我想知道我缺少什么。实际导入所有表格数据有什么必要?这是gemfile:

source 'https://rubygems.org'

gem 'rails', '4.2.5'
gem 'sass-rails', '~> 5.0'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.1.0'
gem 'jquery-rails'
gem 'turbolinks'
gem 'jbuilder', '~> 2.0'
gem 'simple_form', '~> 3.2', '>= 3.2.1'
gem 'bootstrap-sass', '~> 3.3', '>= 3.3.6'
gem 'devise', '~> 3.5', '>= 3.5.3'
gem 'paperclip', '~> 4.3', '>= 4.3.2'

gem 'sdoc', '~> 0.4.0', group: :doc


group :development, :test do
  gem 'byebug'
end

group :development do
  gem 'web-console', '~> 2.0'
  gem 'spring'
end

group :development do
  gem 'sqlite3'
end

group :production do
  gem 'pg'
  gem 'rails_12factor'
end

3 个答案:

答案 0 :(得分:1)

因此,在做了一点研究之后,我了解到这种事情是常见的,并且被认为是正常的。数据库结构被推送到Heroku,但不是填充数据本身。除了使用像种子文件之类的东西开始一些初始记录之外,听起来应该在生产级别上创建实际的填充数据。

答案 1 :(得分:0)

生产数据库

作为对您答案的更新,您在本地系统上处理不同的environmentsproduction用于Heroku和development

对于不同的环境,会出现不同的数据库(数据会有所不同),因此,您在Heroku数据库中看不到任何数据的原因是因为没有数据。

解决此问题的两种方法是:

  • Seed您的生产数据库
  • development中使用与production中相同的数据库(不推荐)。

您问题的最简单答案是在Rails中使用seeding方法:

#db/seeds.rb
Model.find_or_create_by attribute: "value"

然后可以通过在控制台中运行rake db:seed来调用它。

答案 2 :(得分:-1)

运行db:migrate然后git add -A,提交等