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

标签 mysql continuous-integration continuous-deployment circleci

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

PHPUnit 5.6.0,由 Sebastian Bergmann 和贡献者编写。

IIIIII.IIIIIIIIIIIIIIIIIIIIIIIIIIIFFFFFFFFFFFFFIIII..IIIIIIIIIIII 65/89 ( 73%) IIIIIIIIIIIIIIIIIIIII。 89/89 (100%)

时间:1.27秒,内存:56.00MB

有 12 次失败:

1) App\Test\TestCase\Controller\TagsControllerTest::testStages 异常“PDOException”,消息“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

有人可以帮我吗?

最佳答案

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

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

所以,这是数据库配置:

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:)

关于mysql - 如何配置circle.yml以调用数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40803512/

相关文章:

powershell - 如何持续集成 Powershell 脚本

msbuild - 您如何在Atlassian OnDemand上构建C#项目?

azure - 如何修复 Azure CI 上的控制台日志编码问题?

amazon-web-services - 如何使用Gitlab CI和AWS CDK获得CD

linux - 我正在尝试创建 payara 集群,但在创建远程节点期间出现错误

MYSQL WHERE 条件取决于 SELECT 列

javascript - 动态表单到数据库

mysql - AND 语句分组 - MySQL

mysql - 在 MySQL 查询中附加来自另一个 JOIN 语句的新字段

continuous-integration - TestCafe:测试不会通过 headless 模式