gpt4 book ai didi

ruby-on-rails - Capistrano 部署和 schema.rb

转载 作者:行者123 更新时间:2023-12-01 09:37:31 25 4
gpt4 key购买 nike

我是 Rails 的新手,我正在尝试部署我的第一个项目。我正在使用 rails 3、ruby 1.8.7、Passanger、Mysql 和 Git

我遵循了很多教程来了解如何使用 capistrano 进行部署,但有一个问题我无法弄清楚。在教程中,他们从不谈论 schema.rb如果这个文件负责我已经完成的迁移,并且当我们部署应用程序时,capistrano 将所有文件复制到“当前”文件夹(schema.rb 到),它如何在生产服务器上进行正确的迁移。我应该告诉 capistrano 为“当前”文件夹创建一个到正确 schema.rb 文件的 simlink 吗?如果是的话,我该怎么做?Tnks。

最佳答案

schema.rb 文件包含数据库定义。它不对任何迁移负责。

迁移包含在 db/migrations 文件夹中。当您部署新版本并要求 Capistrano 迁移当前数据库时,Capistrano 会调用 rake db:migrate。迁移任务不依赖 schema.rb。它连接到数据库,从 schema 表中读取已执行迁移的列表,并执行 db/migrations 中不存在记录的所有文件表。

schema.rb 文件仅在您调用 rake db:schema:load 或引导 Rails 时使用。在后一种情况下,Rails 将使用模式来防止每次访问模型时检查数据库结构。

也就是说,schema.rb 文件必须在您的 SCM 中进行版本控制,并且您必须在部署期间包含它。你不需要做任何特别的事情。 Capistrano 像所有其他文件一样从您的 SCM checkout 文件,除非您忽略它。

关于ruby-on-rails - Capistrano 部署和 schema.rb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5077917/

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