我用的是Laravel 5.2。我已经设置了我的第一次迁移,我想运行它们。它没有从视频教程中解释如何创建mysql。我知道我可以在phpmyadmin中手动完成这个操作,但是有一种Laravel的方法吗?
这将安装迁移表:
php artisan migrate:install是否有类似的命令来创建DB?
我觉得这个过程应该是:
php artisan DB:install (or similar command)安装迁移表:
php artisan migrate:install运行迁移:
php artisan migrate并回滚迁移:
php artisan migrate:rollback发布于 2016-08-08 14:53:47
没有现成的东西可供选择,但您可以发出自己的命令,为您做到这一点:
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您的新comand,确保将它添加到protected $commands[]数组中。
protected $commands = [
///...,
App\Console\Commands\CreateDatabase::class
];发布于 2017-11-15 19:46:57
如果您也使用不同的mysql连接,这个答案可能会很有用。我正在用laravel 5.5编写代码
步骤:1创建命令
php artisan make:command CreateDatabaseCommand步骤:在app//kernel.php中注册命令
protected $commands = [
CreateDatabaseCommand::class
];步骤:3写入逻辑在CreateDatabaseCommand.php文件中
protected $signature = 'make:database {dbname} {connection?}';
public function handle()
{
try{
$dbname = $this->argument('dbname');
$connection = $this->hasArgument('connection') && $this->argument('connection') ? $this->argument('connection'): DB::connection()->getPDO()->getAttribute(PDO::ATTR_DRIVER_NAME);
$hasDb = DB::connection($connection)->select("SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = "."'".$dbname."'");
if(empty($hasDb)) {
DB::connection($connection)->select('CREATE DATABASE '. $dbname);
$this->info("Database '$dbname' created for '$connection' connection");
}
else {
$this->info("Database $dbname already exists for $connection connection");
}
}
catch (\Exception $e){
$this->error($e->getMessage());
}
}就这样。现在运行您的命令
php artisan make:database {your-database-name} {your-connection-name}:备注::您应该使用第二个参数,如果您想要在与默认的任何连接中创建数据库,否则命令将自动接受默认的db连接。
希望这对某人有帮助:)
发布于 2018-02-09 18:02:19
如果您不打算使用Vagrant或虚拟机进行本地开发,那么您将不得不安装您选择的数据库驱动程序,然后创建一个新的数据库。
若要使用命令行中的MySQL执行此操作,请运行:
$ mysql -uroot -p
mysql> create database yourDatabaseName;然后cp .env.example .env并更新您的数据库creds。
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=yourDatabaseName
DB_USERNAME=root
DB_PASSWORD=root 您将在首次安装驱动程序时将用户名和密码设置为数据库。在此之后,您可能必须使用php artisan key:generate和/或'php配置:清除but、php、artisan迁移‘应该可以工作。
https://stackoverflow.com/questions/38832166
复制相似问题