Migrer une base de données Oracle (XE)

Par Diarill, il y a 7 ans


Bonjour,

Voila je rencontre un petit problème avec mon code.

Ce que je fais

Ci-dessous mon code.
Mais avant d'exécuter ce code, j'ai suivi à la lettre les instructions sur ce site https://phinx.org/, en passant par la commande mkdir
mkdir -p db\migrations db\seeds
Cependant, lorsque je fais cette commande .\vendor\bin\phinx create UserTable :(
Nota: Je suis sur windows.

<?php $server = "localhost"; $db_username = "root"; $db_password = "root"; $service_name = "XE"; $sid = "XE"; $port = 1521; $dbtns = "(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = $server)(PORT = $port)) (CONNECT_DATA = (SERVICE_NAME = $service_name) (SID = $sid)))"; $pdo = new PDO("oci:dbname=" . $dbtns . ";charset=utf8", $db_username, $db_password); return [ 'path' => [ 'migrations' => __DIR__ . '/db/migrations', 'seeds' => __DIR__ . '/db/seeds', ], 'environments' => [ 'default_database' => 'development', 'development' => [ 'name' => $dbtns, 'connection' => $pdo ] ] ];

Ce que je veux

je veux effectuer les migrations pour une base de données oracle XE avec phinx.
Merci par avance.

Ce que j'obtiens

Migrations path missing from config file

4 réponses

Lartak, il y a 7 ans

Bonsoir.
Pour commencer, si tu regardes bien dans la documentation de PHINX, il est indiqué que les adapters supportés sont :

  • MySQL: specify the mysql adapter.
  • PostgreSQL: specify the pgsql adapter.
  • SQLite: specify the sqlite adapter.
  • SQL Server: specify the sqlsrv adapter.

Pour terminer, ce n'est pas path, mais paths.

Diarill, il y a 7 ans

En fait j'ai pu voir tout ça. Mais j'ai essayé en me disant, je peux être celui-là qui en cherchant la pomme verte a trouvé une pomme rouge.
Mais je souhaite quand même arriver à ce niveau la où c'est oracle qui me balance c'est errors.
Est - il possible de résoudre ce problème path? Si oui comment? Si non, est ce lié à un problème de compatibilité?
Merci pour votre réponse.

Lartak, il y a 7 ans

Est - il possible de résoudre ce problème path

J'ai déjà dit doù venait ton erreur concernant path :

Pour terminer, ce n'est pas path, mais paths.

Il te faut donc remplacer :

return [ 'path' => [ // etc ... ] ];

Par :

return [ 'paths' => [ // etc ... ] ];
Diarill, il y a 7 ans

Cool man. It works. Thanks