首页 > 解决方案 > gitlab-ci 找不到 config/database.yml,尽管它不应该存在于我的仓库中

问题描述

我正在尝试为我的 Rails 项目创建 gitlab-ci 文件。

这是我的 .gitlab-ci.yml 的一部分:

before_script:
  - apt-get update -qq && apt-get install -yqq nodejs libmysqlclient-dev
  - ruby -v
  - which ruby
  - gem install bundler --no-ri --no-rdoc
  - bundle install --jobs $(nproc) "${FLAGS[@]}"
  - bundle exec rake db:create db:schema:load
  - bundle exec rake db:migrate --quiet

错误是:

Could not load database configuration. No such file - ["config/database.yml"]

在我的本地机器和服务器上,存在 config/database.yml 文件。

回购中不存在“config/database.yml”,也不应该存在。它是在 gitignore 中添加的

我的仓库中只存在默认值config/database.example.yml。而且它不包含我的数据库的真实凭据。

我该如何解决?

标签: ruby-on-railsrubygitcontinuous-integrationgitlab

解决方案


您有 2 个选择:

  1. 放置该脚本以复制.example.ymldatabase.yml并使用环境变量来设置配置:例如:

    production:
          username: <%= ENV['DB_USERNAME'] %>
          host: <%= ENV['DB_HOST'] %>
          etc...
    
  2. 创建一个脚本以使用硬编码或来自环境的数据为您生成此文件,然后调用gitlab-ci.yml.


推荐阅读