使用 Artisan 调用 php artisan 迁移
Posted
技术标签:
【中文标题】使用 Artisan 调用 php artisan 迁移【英文标题】:Call php artisan migrate using Artisan 【发布时间】:2019-06-30 22:26:42 【问题描述】:是否可以为
创建 Artisan 调用或命令php artisan migrate
点赞Artisan::call('migrate);
所以我可以在动态更改连接时将丢失的表迁移到我的数据库中。
Config::set('database.connections.dynamicdb', array(
'driver' => 'mysql',
'host' => '127.0.0.1',
'database' => $database_name,
'username' => 'test_user',
'password' => '123456',
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'strict' => false,
'options' => [
\PDO::ATTR_EMULATE_PREPARES => true
]
));
Artisan::call('migrate');
或者有没有办法为它创建一个命令?请提出一些解决方案。
【问题讨论】:
您回答了自己的问题 -Artisan::call('migrate')
。你试过吗?你有问题吗?
它不起作用。我的是 laravel 5.6
定义“它不起作用”。发生什么了?您遇到什么错误或行为?
页面是否“挂起”并坐在那里?如果这是在生产中,您可能需要传递--force
;见***.com/questions/37953783/…。
您可能还需要告诉它执行--database dynamicdb
。您继续说“不起作用”,但没有说明发生了什么——无论您收到错误、永无止境的加载指示符,还是就像成功一样继续。
【参考方案1】:
试试这个代码:
\Artisan::call('migrate',
array(
'--path' => 'database/migrations',
'--database' => 'dynamicdb',
'--force' => true));
因为我的默认设置采用 /app 作为路径,并且迁移被放置在数据库/迁移中。因此,这将在创建新项目时对我有用。
【讨论】:
以上是关于使用 Artisan 调用 php artisan 迁移的主要内容,如果未能解决你的问题,请参考以下文章
为啥 Laravel 总是在每个 Artisan 命令中调用 schedule()?
使用不同的 .env 从其他 Artisan 命令调用 Artisan 命令
使用php artisan命令的URL :: asset()为我提供了localhost链接
php artisan:调用未定义函数 App\Http\Services\mcrypt_get_block_size()
PHP 致命错误:在第 1 行 Laravel Artisan Tinker 的 eval() 代码中调用未定义函数 table()