首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Laravel创建mysql数据库

问如何使用Laravel创建mysql数据库
EN

Stack Overflow用户
提问于 2016-08-08 14:42:34
回答 7查看 28.6K关注 0票数 16

我用的是Laravel 5.2。我已经设置了我的第一次迁移,我想运行它们。它没有从视频教程中解释如何创建mysql。我知道我可以在phpmyadmin中手动完成这个操作,但是有一种Laravel的方法吗?

这将安装迁移表:

代码语言:javascript
复制
php artisan migrate:install

是否有类似的命令来创建DB?

我觉得这个过程应该是:

代码语言:javascript
复制
php artisan DB:install (or similar command)

安装迁移表:

代码语言:javascript
复制
php artisan migrate:install

运行迁移:

代码语言:javascript
复制
php artisan migrate

并回滚迁移:

代码语言:javascript
复制
php artisan migrate:rollback
EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2016-08-08 14:53:47

没有现成的东西可供选择,但您可以发出自己的命令,为您做到这一点:

代码语言:javascript
复制
php artisan make:console CreateDatabase
// Note, in 5.3 this is make:command

然后在app/Console/Commands你会发现CreateDatabase.php。打开吸盘,让我们做一些改变:

代码语言:javascript
复制
protected $name = "make:database";
// in Laravel 5.3 + it's protected $signature

然后在下面的文件中,我们需要一个新的函数:

代码语言:javascript
复制
protected function getArguments()
{
    return [
        ['name', InputArgument::REQUIRED, 'The name of the database'],
    ];
}

然后,我们将创建另一个名为fire()的函数,它将在调用命令时调用:

代码语言:javascript
复制
public function fire()
{
    DB::getConnection()->statement('CREATE DATABASE :schema', ['schema' => $this->argument('name')]);
} 

现在你可以这么做了:

代码语言:javascript
复制
php artisan make:database newdb

现在,您将根据连接配置为您创建一个newdb数据库。

编辑忘记了最重要的部分--您需要告诉app\Console\Commands\Kernel.php您的新comand,确保将它添加到protected $commands[]数组中。

代码语言:javascript
复制
protected $commands = [
    ///...,
    App\Console\Commands\CreateDatabase::class
];
票数 16
EN

Stack Overflow用户

发布于 2017-11-15 19:46:57

如果您也使用不同的mysql连接,这个答案可能会很有用。我正在用laravel 5.5编写代码

步骤:1创建命令

代码语言:javascript
复制
php artisan make:command CreateDatabaseCommand

步骤:在app//kernel.php中注册命令

代码语言:javascript
复制
protected $commands = [
    CreateDatabaseCommand::class
];

步骤:3写入逻辑在CreateDatabaseCommand.php文件中

代码语言:javascript
复制
    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());
     }
   }

就这样。现在运行您的命令

代码语言:javascript
复制
php artisan make:database {your-database-name} {your-connection-name}:

备注::您应该使用第二个参数,如果您想要在与默认的任何连接中创建数据库,否则命令将自动接受默认的db连接。

希望这对某人有帮助:)

票数 7
EN

Stack Overflow用户

发布于 2018-02-09 18:02:19

如果您不打算使用Vagrant或虚拟机进行本地开发,那么您将不得不安装您选择的数据库驱动程序,然后创建一个新的数据库。

若要使用命令行中的MySQL执行此操作,请运行:

代码语言:javascript
复制
$ mysql -uroot -p
mysql> create database yourDatabaseName;

然后cp .env.example .env并更新您的数据库creds。

代码语言:javascript
复制
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迁移‘应该可以工作。

利用Laravel 5进行初始数据库创建和播种

如何在OSX上安装MySQL

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38832166

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档