Laravel在迁移中更新外部数据库列

时间:2018-03-31 07:56:39

标签: php laravel

我试过以下

class ...migration

    public function up()
    {
    //
    $connections = \App\AppConnectionsModel::get();
    foreach ($connections as $connection){
        ///set the default configurations
        Config::set('database.connections.inspection.database', $connection->database);
        Config::set('database.connections.inspection.port', $connection->port);
        Config::set('database.connections.inspection.username', $connection->username);
        Config::set('database.connections.inspection.password', $connection->password);
        Config::set('database.connections.inspection.host', $connection->host);


        //then get db and change the column tables
        Schema::table('tbl_users', function(Blueprint $table) {
            $table->string('password')->default('n/a');

        });


    }

}

我要做的是在外部数据库表中添加列tbl_users

我还需要添加什么才能实现这一目标 ?

我也试过

$connections = \App\AppConnectionsModel::get();
    foreach ($connections as $connection){
        //update user
       ...set config as above
        Schema::connection('inspection')->table('tbl_user',function(Blueprint $table){
            $table->string('password')->unsigned()->nullable();
        });
    }

1 个答案:

答案 0 :(得分:0)

config/database.php中创建新的数据库条目。例如我在网站上使用的sqlite DB:

'connections' => [

    'sqlite' => ['driver'   => 'sqlite',
                 'database' => database_path('database.sqlite'),
                 'prefix'   => '',],

你可以给它任何你喜欢的名字,它不必是 sqlite 。要使用除默认值之外的其他数据库,请使用\DB::connection('yourDBname')->...

当在配置中设置所有数据库连接时,使用您的连接名称创建一个数组并从那里循环它们。

如果您需要迁移架构,请使用\Schema::setConnection('yourDBname')->create('table_name', function(Blueprint $table) {...}