【问题标题】:How i can getDatabaseName in Phinx?我如何在 Phinx 中获取数据库名称?
【发布时间】:2020-02-17 18:11:12
【问题描述】:

我正在使用 Phinx 进行迁移。 https://github.com/cakephp/phinx

现在我想在迁移文件中的一些特殊查询中使用我的数据库名称,数据库名称是根据 phinx-config 文件中的环境指定的。

    return [
    'paths' => [
        'migrations' => './database/migrations',
        'seeds' => './database/seeds',
    ],
    'environments' => [
        'default_migration_table' => 'phinxlog',
        'default_database' => 'development',
        'development' => [
            'adapter' => 'mysql',
            'host' => ,
            'name' => ,
            'user' => ,
            'pass' => ,
            'port' => 3306,
            'charset' => 'utf8',
        ],
    ],
];

我在项目范围内发现了一些行

$output->writeln('<info>using database</info> ' . $envOptions['name']);

基于供应商\robmorgan\phinx\src\Phinx\Console\Command\Migrate.php

如果我启动命令,则会有一条消息将 cli 称为正确的数据库。 我如何在迁移文件中使用这个 $envOptions?

我缺少像 getConfig() 这样的东西。

【问题讨论】:

    标签: php parameters migration config phinx


    【解决方案1】:

    您可以在迁移中访问 环境配置参数,例如 $this-&gt;getAdapter()-&gt;getOption('&lt;paramKey&gt;');

    <?php
    
    use Phinx\Migration\AbstractMigration;
    
    /**
     * Class InnoDB
     */
    class SomeMigration extends AbstractMigration
    {
        /**
         * Up
         */
        public function change()
        {
            //returns the field "name" from environment config
            $dbName = $this->getAdapter()->getOption('name'); 
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2011-06-04
      • 2012-03-08
      • 2014-03-29
      • 1970-01-01
      • 2011-10-30
      • 1970-01-01
      • 2012-09-27
      • 2012-04-14
      • 2020-12-26
      相关资源
      最近更新 更多