加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rails:迁移后运行初始化程序

发布时间:2020-12-17 01:47:38 所属栏目:百科 来源:网络整理
导读:我有一些代码,我从初始化程序运行,它工作正常. (它将yaml文件的默认设置保存到 rails-settings-cache gem的数据库中.) 但是当我在Travis CI上运行它时,由于它从头开始进行迁移,因此初始化程序失败,因为该表尚不存在. 有没有办法在迁移后但在应用程序启动之前
我有一些代码,我从初始化程序运行,它工作正常. (它将yaml文件的默认设置保存到 rails-settings-cache gem的数据库中.)

但是当我在Travis CI上运行它时,由于它从头开始进行迁移,因此初始化程序失败,因为该表尚不存在.

有没有办法在迁移后但在应用程序启动之前运行代码?

解决方法

因此,虽然我不喜欢这样做,但是在db:migrate期间阻止初始化程序运行的简单方法,但是在应用程序启动或测试运行时运行是将它包装在子句测试中(如果表存在).因此,如果您使用现有的初始化代码并将其包装

if ActiveRecord::Base.connection.table_exists? 'table_name'
   ....
end

其中’table_name’是缺失表的名称,然后rake db:migrate和spec运行应该能够成功完成.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读