蛋糕控制台烘烤不同的数据源(插件阵列)

时间:2012-12-20 16:17:20

标签: arrays cakephp plugins datasource

我安装了数据源插件数组。它不使用db表作为数据源。它是一个数组(源)。当我尝试使用蛋糕烘焙(或其他东西)烘烤时,它不会识别所使用的数组源,只识别我的数据库中的表。

我想将数据源数据库表的所有crud操作烘焙为我的数组数据源。我该怎么做?

ty advance

3 个答案:

答案 0 :(得分:1)

设置数据源后。如果从根目录运行bake命令,则可以在其中看到bin文件夹。

这将为您提供表列表

sudo bin/cake bake.bake model --connection OTHER_DATABASE_NAME

假设我们要烤Users

烘烤模型

sudo bin/cake bake.bake model TABLE_NAME --connection OTHER_DATABASE_NAME

在cakephp 3.x中

如果要手动执行此操作,则可以照常创建Entity类和Table类。然后在UsersTable.php中添加以下功能:

public static function defaultConnectionName()
    {
        return 'OTHER_DATABASE_NAME';
    }

答案 1 :(得分:0)

当您使用Cake Bake(我认为其他控制台命令)时,cake会查看DATABASE_CONFIG 中的默认值,除非 使用“-c”选项。它允许您选择不同的数据连接。您可能默认设置为数据库,而另一个则设置为数组数据源。

答案 2 :(得分:0)

尝试编辑你的文件app.php:

    'Datasources' => [
    'default' => [
        'className' => 'Cake\Database\Connection',
        'driver' => 'Cake\Database\Driver\Mysql',
        'persistent' => false,
        'host' => 'aws.amazon-br.service',
        //'port' => 'non_standard_port_number',
        'username' => 'username',
        'password' => 'passaword',
        'database' => 'wp_my_site',
        'encoding' => 'utf8',
        'timezone' => 'UTC',
        'cacheMetadata' => true,
        'quoteIdentifiers' => false,
        'log' => false,
        //'init' => ['SET GLOBAL innodb_stats_on_metadata = 0'],
        'url' => env('DATABASE_TEST_URL', null),
    ],

    /**
     * The test connection is used during the test suite.
     */
    'my_system_db' => [
        'className' => 'Cake\Database\Connection',
        'driver' => 'Cake\Database\Driver\Mysql',
        'persistent' => false,
        'host' => 'hostgator.dbsource.manager',
        //'port' => 'non_standard_port_number',
        'username' => 'my_systen',
        'password' => 'secret_password',
        'database' => 'my_system',
        'encoding' => 'utf8',
        'timezone' => 'UTC',
        'cacheMetadata' => true,
        'quoteIdentifiers' => false,
        'log' => false,
        //'init' => ['SET GLOBAL innodb_stats_on_metadata = 0'],
        'url' => env('DATABASE_TEST_URL', null),
    ],
],

保存app.php文件后,转到你的命令并使用这种格式的bake命令:

  

cake烘焙所有name_table -c name_your_connect

示例:

  

cake烘焙所有用户-c my_system_db