gpt4 book ai didi

ruby-on-rails - 为什么首先使用 Capistrano 部署运行 db :migrate?

转载 作者:行者123 更新时间:2023-12-03 20:21:16 26 4
gpt4 key购买 nike

我第一次使用 Capistrano 部署到生产环境,运行时出现错误
cap production deploy
错误是:

** Invoke deploy:migrate (first_time)
** Invoke deploy:set_rails_env
** Execute deploy:migrate
DEBUG [048f89c6] Running /usr/bin/env if test ! -d /home/deployer_user/apps/ap_production/releases/20140209005208; then echo "Directory does not exist '/home/deployer_user/apps/ap_production/releases/20140209005208'" 1>&2; false; fi on eslope.net
DEBUG [048f89c6] Command: if test ! -d /home/deployer_user/apps/ap_production/releases/20140209005208; then echo "Directory does not exist '/home/deployer_user/apps/ap_production/releases/20140209005208'" 1>&2; false; fi
DEBUG [048f89c6] Finished in 0.160 seconds with exit status 0 (successful).
INFO [52f75214] Running ~/.rbenv/bin/rbenv exec bundle exec rake db:migrate on eserver.net
DEBUG [52f75214] Command: cd /home/deployer_user/apps/ap_production/releases/20140209005208 && ( RBENV_ROOT=~/.rbenv RBENV_VERSION=2.1.0 RAILS_ENV=production ~/.rbenv/bin/rbenv exec bundle exec rake db:migrate )
DEBUG [52f75214] rake aborted!
DEBUG [52f75214] An error has occurred, this and all later migrations canceled:
DEBUG [52f75214]
DEBUG [52f75214] PG::UndefinedTable: ERROR: relation "client_infos" does not exist
DEBUG [52f75214] : ALTER TABLE "client_infos" RENAME TO "clients

这个错误实际上是完全有道理的。引用的表不存在。我不明白的是为什么迁移正在运行?为什么不是在第一次运行时从模式创建数据库。我是否无意中删除了一个说明已运行迁移的文件?是通过删除它,还是通过“.gitignoring”它?

我想我知道如何修复它(rake db:create 或类似的),但我不明白的是,如果在 Capistrano v3 中它知道这是第一次,为什么它不会直接使用架构而不是运行所有迁移?我是一个菜鸟,这似乎是合理的,但另一方面,运行迁移会达到相同的结果,所以......(但是那些不会在生产中盲目使用迁移的人呢;不会他们被卡住了?)谢谢。

最佳答案

最终我所做的就像 lmars 和 Nick 建议的那样。我直接在生产机器上运行了这样的东西:

RAILS_ENV=production bundle exec rake db:drop
RAILS_ENV=production bundle exec rake db:schema:create
RAILS_ENV=production bundle exec rake db:schema:load

这当然会破坏数据库中的数据,但在第一次部署时,这不是问题。

我认为有一种更简单的方法,但是......我不知道。

关于ruby-on-rails - 为什么首先使用 Capistrano 部署运行 db :migrate?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21654614/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com