laravel - 如何使用 Laravel 创建一个 mysql 数据库

标签 laravel

我正在使用 Laravel 5.2。我已经设置了我的第一次迁移,我想运行它们。来自 video tutorial它没有解释如何创建一个 mysql 数据库。我知道我可以在 phpmyadmin 中手动执行此操作,但是有 Laravel 方法吗?

这将安装迁移表:

php artisan migrate:install

是否有类似的命令可以创建数据库?

我认为这个过程应该是:
php artisan DB:install (or similar command)

安装迁移表:
php artisan migrate:install

运行迁移:
php artisan migrate

并回滚迁移:
php artisan migrate:rollback

最佳答案

没有提供任何开箱即用的功能,但您可以创建自己的命令来为您执行此操作:

php artisan make:console CreateDatabase
// Note, in 5.3 this is make:command
然后在 app/Console/Commands你会发现 CreateDatabase.php .打开那个吸盘,让我们做一些改变:
protected $name = "make:database";
// in Laravel 5.3 + it's protected $signature
然后在您的文件下方,我们需要一个新函数:
protected function getArguments()
{
    return [
        ['name', InputArgument::REQUIRED, 'The name of the database'],
    ];
}
然后我们将创建另一个名为 fire() 的函数这将在调用命令时调用:
public function fire()
{
    DB::getConnection()->statement('CREATE DATABASE :schema', ['schema' => $this->argument('name')]);
} 
现在你可以这样做:
php artisan make:database newdb
现在你会得到一个 newdb根据您的连接配置为您创建的数据库。
编辑 忘记了最重要的部分 - 你需要告诉 app\Console\Commands\Kernel.php关于您的新命令,请确保将其添加到 protected $commands[]大批。
protected $commands = [
    ///...,
    App\Console\Commands\CreateDatabase::class
];

关于laravel - 如何使用 Laravel 创建一个 mysql 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38832166/

相关文章:

mysql - Laravel 连接表和连接行

使用模拟的 PHP Laravel 测试

php - 长时间运行的控制台命令速度变慢

php - spatie/laravel-备份 : Scheduling doesn't work

Laravel 平均值为空值

laravel:如何保持登录直到条件变为假?

php - Laravel 5.2 $errors 未出现在 Blade 中

php - 发布数据无法正常工作 Laravel

laravel - 如何防止使用 phpunit 触发模型事件?

php - Laravel 表单数组验证