如何配置circle.yml以调用数据库?

时间:2016-11-25 11:03:24

标签: mysql continuous-integration continuous-deployment circleci

我正在尝试配置CircleCi设置。 当我尝试在我自己的环境中运行测试时,一切正常,但是当我尝试在Circle CI中运行它时,我得到了这个错误。

Sebastian Bergmann和贡献者的PHPUnit 5.6.0。

IIIII.IIIIIIIIIIIIIIIIIIIIIIIIIIIIIFFFFFFFFFFFFIIIIIIIIIIIIIIII 65/89(73%) IIIIIIIIIIIIIIIIIIIIIII。 89/89(100%)

时间:1.27秒,内存:56.00MB

有12次失败:

1)App \ Test \ TestCase \ Controller \ TagsControllerTest :: testStages 异常' PDOException' with message' SQLSTATE [HY000] [2002]没有这样的文件或目录'在/home/ubuntu/cemcloud2/vendor/cakephp/cakephp/src/Database/Driver/PDODriverTrait.php:48

这是错误的第一部分。

我发现我的数据库配置有错误。 我们正在使用Vagrant脚本(不确定这是否可行)。 我们也在使用mariaDB 10.1.19,我已经为PHPUnit建立了一个测试数据库来运行测试。 我不知道如何使用mariadb和特定数据库的配置添加此数据库。

我知道我必须添加

  

database.yml.ci

到我的配置文件,所以我在那里添加了它,看起来像这样。

test:
adapter: mysql
database: cemcloudTest
username: root
password: ''

此外,我已将circle.yml添加到项目根目录,它看起来像这样。

  machine:
php:
  version: 7.0
mysql:
  version: 10.1.19
database:
override:
  - cp config/database.yml.ci config/database.yml
  - bundle exec rake db:create db:schema:load

有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:0)

必须使用您在测试配置中使用的名称创建cicle.yml数据库中的

database:
  override:
    - mysql -u ubuntu -e "create database circle_ruby_test"

这就是db conf:

test: # connection name
  adapter: mysql2
  encoding: utf8
  reconnect: false
  host: localhost
  database: circle_ruby_test #your created DB
  username: ubuntu #default circle user
  pool: 25
  socket: /var/run/mysqld/mysqld.sock # default sock location for circle

HTH:)