【问题标题】:Symfony2 like database creation command in laravel console?Symfony2 像 laravel 控制台中的数据库创建命令?
【发布时间】:2015-01-07 06:40:18
【问题描述】:

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

php app/console  doctrine:database:create

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

【问题讨论】:

    标签: laravel laravel-4 symfony-console


    【解决方案1】:

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

    首先,运行php artisan command:make CreateDatabase --command=database:create生成app/commands/CreateDatabase.php

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

    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');
    

    【讨论】:

    • 感谢您的精彩回答。如果我们看到 symfony2 命令然后看到,它首先读取 parameters.yml 文件并选择数据库名称并在系统中创建新数据库。我认为幻灯片修改可能会达到我的目标。
    • 您可以在app/config 中创建自己的配置文件并使用Config::get() 检索参数。如果您需要更多帮助,请告诉我...
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      我认为您无法通过命令创建数据库,因此请转到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
      

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

      最后运行这个命令php artisan migrate

      【讨论】:

      • 以下命令只是在数据库中创建一个表。在这里,我必须手动创建数据库,但我不想手动创建它。只需在 laravel 控制台中编写我的命令,系统就会自动创建我的数据库。
      • No laravel 不允许通过命令行创建数据库,所以需要手动创建数据库。
      猜你喜欢
      • 2014-02-23
      • 2012-07-20
      • 2015-09-02
      • 2014-11-08
      • 2013-10-19
      • 2013-03-10
      • 1970-01-01
      • 1970-01-01
      • 2010-11-18
      相关资源
      最近更新 更多