每次在修改某些代码并尝试显示应用后运行git push
时,都会出现以下no such table
错误。
stdout.log(生产环境)
Started GET "/" for 111.222.333.444 at 2014-11-13 22:07:36 +0900
Processing by ArticlesController#index as HTML
SQLite3::SQLException: no such table: articles: SELECT "articles".* FROM "articles" ORDER BY created_at DESC LIMIT 10
Completed 500 Internal Server Error in 16ms
ActiveRecord::StatementInvalid (SQLite3::SQLException: no such table: articles: SELECT "articles".* FROM "articles" ORDER BY created_at DESC LIMIT 10):
app/controllers/articles_controller.rb:7:in `index'
我所做的程序如下所述。
rake aseets:precompile
git add .
git commit -m "xxx"
git checkout master
git merge xxx #branch name
git push origin master
我在托管服务(而不是heroku)上执行以下命令,因为显示了上面提到的错误消息。
rake db:migrate
rake db:seed
这是否意味着每次执行git push
时都清理了所有存储的数据?
如果我运行git push,请告诉我如何保存数据。
答案 0 :(得分:3)
与大多数PaaS提供商一样,Heroku does not provide a persistent filesystem。每次部署时,您在本地存储的所有文件都将丢失。
Heroku上文件存储的一般建议是use something like Amazon S3,它允许您跨部署存储文件。但是,如果您可以远离SQLite,您应该考虑使用natively supported by Heroku之一迁移到PostgreSQL,即supported data storage addons或其他数据库。