Symfony2喜欢laravel控制台中的数据库创建命令?

时间:2015-01-07 06:40:18

标签: laravel laravel-4 symfony-console

我使用symfony2 console来创建数据库。如果我想创建一个名为" symfony"我通常在parameters.yml文件中提到该名称,并在控制台

中运行以下命令
php app/console  doctrine:database:create

但是当来到laravel时,我没有找到类似的命令来在laravel中创建数据库。任何人都可以帮我找出直接从 Laravel Console 创建数据库的命令。

3 个答案:

答案 0 :(得分:1)

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

首先,运行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');

答案 1 :(得分:0)

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

因此,如果您想使用php artisan create database table ***之类的东西直接从Laravel Console创建表格,则无法实现。

答案 2 :(得分:0)

我认为您无法通过命令创建数据库,因此请转到app/config/database.php并设置数据库配置。详情here

'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

它将生成一个名为create_users_table的app/database/migrations文件。 。 。 。 。然后按照link

创建表格

最后运行此命令php artisan migrate