2016-04-07 7 views
0

Je travaille sur la mise en place d'un environnement CI sur Shippable. Je suis à un point où j'ai une base de données de test et je dois courir mes migrations contre, mais je reçois une erreur qui fait aucun sens pour moiQu'est-ce qui cause la migration de knex: le dernier à échouer dans Shippable?

L'étape de construction en cours d'exécution est la suivante:

(cd www && NODE_ENV=test knex --knexfile ./config/knexplus.js migrate:latest) 

la sortie est la suivante:

Working directory changed to ~/src/github.com/org/api/www/config 
Using environment: test 
Knex:warning - Pool2 - Error: Pool was destroyed 
Knex:Error Pool2 - Error: ER_DBACCESS_DENIED_ERROR: Access denied for user ''@'localhost' to database 'my_test' 
Knex:Error Pool2 - Error: ER_DBACCESS_DENIED_ERROR: Access denied for user ''@'localhost' to database 'my_test' 
Error: Pool was destroyed 

ne vous méprenez pas, je comprends le message, mais pas pourquoi je reçois. Avant d'exécuter les migrations, je la construction du dumping le contenu du fichier knexplus.js:

(cd www && cat ./config/knexplus.js) 
    'use strict'; 

    exports.vagrant = exports.staging = exports.production = { 
     client: 'mysql', 
     connection: { 
      host: '127.0.0.1', 
      port: '3306', 
      user: 'shippable', 
      password: '', 
      database: 'mine', 
      timezone: 'UTC', 
      charset: 'utf8', 
      debug: false 
     }, 
     migrations: { 
      tableName: '_migrations', 
      directory: '../db/migrations' 
     }, 
     seeds: { 
      directory: '../db/seeds' 
     } 
    }; 

    exports.test = { 
     client: 'mysql', 
     connection: { 
      host: '127.0.0.1', 
      port: '3306', 
      user: 'shippable', 
      password: '', 
      database: 'my_test', 
      timezone: 'UTC', 
      charset: 'utf8', 
      debug: false 
     }, 
     migrations: { 
      tableName: '_migrations', 
      directory: '../db/migrations' 
     }, 
     seeds: { 
      directory: '../db/seeds' 
     } 
    }; 

Ce que je remarque est que le message d'erreur semble indiquer que nous saisissant la bonne configuration car il est référence à la base de données my_test, mais la le nom d'utilisateur et l'hôte sont erronés.

Une idée de ce que je pourrais manquer ici?

Répondre

0

Je fini par entrer dans un billet de soutien et a obtenu cette réponse:

Les bases de données dans les nouvelles images par défaut ne sont pas un utilisateur « shippable », si MySQL remarque que quelqu'un tente de se connecter en tant que utilisateur qui n'existe pas et essaie de voir si vous pouvez vous connecter sans nom d'utilisateur. Vous pouvez créer un utilisateur expédiable en ajoutant mysql -e "GRANT ALL ON *.* TO [email protected] IDENTIFIED BY ''; FLUSH PRIVILEGES;" à votre shippable.yml dans la section ci avant de vous connecter ou de vous connecter en tant qu'utilisateur root.

Toute la documentation que je lisais à l'époque avait l'utilisateur shippable. La première étape consiste à trouver la documentation droite, je suppose.