0

我使用 symfony2 控制台创建数据库。如果我想创建一个名为“symfony”的数据库,我通常会在 parameters.yml 文件中提到该名称并在控制台中运行以下命令

php app/console  doctrine:database:create

但是当来到 laravel 时,我没有找到在 laravel 中创建数据库的类似命令。谁能帮我找出那些直接从Laravel Console创建数据库的命令。

4

3 回答 3

2

您可以这样做,但您必须创建自己的命令

一、运行php artisan command:make CreateDatabase --command=database:create生成app/commands/CreateDatabase.php

然后打开该文件并将其更改为:(我省略了所有评论,但您显然可以将它们保留在那里)

class CreateDatabase extends Command {
    protected $name = 'database:create';
    protected $description = 'Command description.';

    public function fire()
    {
        DB::statement('CREATE DATABASE '.$this->argument('name'));
    }

    protected function getArguments()
    {
        return array(
            array('name', InputArgument::REQUIRED, 'Database name'),
        );
    }
}

现在您只需在以下位置注册命令app/start/artisan.php

Artisan::add(new CreateDatabase);

你可以走了。

这就是你所说的:

php artisan database:create your-desired-database-name

替代品:工匠修补匠

你总是可以php artisan tinker用来运行 PHP 代码(使用 Laravel 引导):

php artisan tinker
> DB::statement('CREATE DATABASE your-desired-database-name');
于 2015-01-07T08:33:43.183 回答
0

我认为你不能通过命令创建数据库,所以去app/config/database.php设置你的数据库配置。详情在这里

'mysql' => array(
    'read' => array(
        'host' => '192.168.1.1',
    ),
    'write' => array(
        'host' => '196.168.1.2'
    ),
    'driver'    => 'mysql',
    'database'  => 'database',
    'username'  => 'root',
    'password'  => '',
    'charset'   => 'utf8',
    'collation' => 'utf8_unicode_ci',
    'prefix'    => '',
),

设置后可以通过命令创建表

php artisan migrate:make create_user_table --table=users

它将生成一个app/database/migrations名为 create_users_table 的文件。. . . . 然后你按照这个链接创建你的表

最后运行这个命令php artisan migrate

于 2015-01-07T08:03:36.257 回答
0

据我所知,您可以php artisan migrate用来进行迁移,包括从 Laravel 控制台创建表。但是,您需要先创建和修改迁移文件,您可以在其中创建或删除表。

所以如果你想直接从 Laravel 控制台使用类似的东西创建一个表php artisan create database table ***,这是不可能的。

于 2015-01-07T06:45:00.973 回答