【发布时间】:2019-08-24 17:01:42
【问题描述】:
到目前为止,我一直在测试部署我的应用程序,并将数据库文件夹放在它的标准位置。在服务器上,它最终位于:project/current/db。明显的问题是每次部署应用程序时数据库都会被覆盖。为了消除这种情况,我将数据库文件夹添加到 :linked_dirs 列表中,因此 deploy.rb 中的行变为:
append :linked_dirs, "db", "log", "tmp/pids", "tmp/cache", "tmp/sockets", "public/system"
使用此设置部署后,应用程序无法运行,发出错误:
Showing /home/deploy/gps_monitor/releases/20190824124626/app/views/gps_messages/index.html.erb where line #14 raised:
SQLite3::SQLException: no such table: gps_messages
对新部署进行故障排除显示新链接的 db 文件夹中缺少文件“seeds.rb、schema.rb 和 migrate(文件夹)”。
Cap 日志显示存储库首先被克隆(将丢失的文件放在 project/current/db 目录中,然后该目录被删除并替换为 project/ 的链接共享/db。
我想我可以找到某种解决方法,但我认为会有一种标准方法来防止这个问题。顺序应该是
1) clone the repo
2) create the project/shared/db folder
3) cp project/current/db/* project/shared/db
4) rm project/current/db
5) create symlink
肯定不止我一个人遇到过这种情况,传统的解决方法是什么?
Capistrano Version: 3.11.0 (Rake Version: 12.3.3)
Rails 6.0.0.beta3
ruby 2.6.2p47 (2019-03-13 revision 67232) [armv7l-linux-eabihf]
感谢您的帮助。
【问题讨论】:
标签: ruby-on-rails deployment capistrano