Symfony2 喜欢 laravel 控制台中的数据库创建命令?
Symfony2 like database creation command in laravel console?
我已经使用 symfony2 控制台创建数据库。如果我想创建一个名为 "symfony" 的数据库,我通常会在 parameters.yml 文件中提到该名称,然后在控制台
中运行以下命令
php app/console doctrine:database:create
但是到了laravel,我没有在laravel中找到类似的创建数据库的命令。谁能帮我找出那些直接从 Laravel 控制台.
创建数据库的命令
据我所知,您可以使用 php artisan migrate
进行迁移,包括从 Laravel 控制台创建 tables。但是,您需要先创建和修改迁移文件,您可以在其中创建或删除 tables.
因此,如果您想使用 php artisan create database table ***
之类的东西直接从 Laravel 控制台创建 table,这是不可能的。
我认为您无法通过命令创建数据库,因此转到 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' => '',
),
设置后可以通过命令
创建table
php artisan migrate:make create_user_table --table=users
它将生成一个名为 app/database/migrations
的文件 create_users_table。 . . . .然后你按照这个 link
创建你的 table
最后 运行 这个命令 php artisan migrate
您可以这样做,但您必须创建自己的 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
替代方案:artisan修补匠
您始终可以使用 php artisan tinker
到 运行 PHP 代码(使用 Laravel 自举):
php artisan tinker
> DB::statement('CREATE DATABASE your-desired-database-name');
我已经使用 symfony2 控制台创建数据库。如果我想创建一个名为 "symfony" 的数据库,我通常会在 parameters.yml 文件中提到该名称,然后在控制台
中运行以下命令php app/console doctrine:database:create
但是到了laravel,我没有在laravel中找到类似的创建数据库的命令。谁能帮我找出那些直接从 Laravel 控制台.
创建数据库的命令据我所知,您可以使用 php artisan migrate
进行迁移,包括从 Laravel 控制台创建 tables。但是,您需要先创建和修改迁移文件,您可以在其中创建或删除 tables.
因此,如果您想使用 php artisan create database table ***
之类的东西直接从 Laravel 控制台创建 table,这是不可能的。
我认为您无法通过命令创建数据库,因此转到 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' => '',
),
设置后可以通过命令
创建tablephp artisan migrate:make create_user_table --table=users
它将生成一个名为 app/database/migrations
的文件 create_users_table。 . . . .然后你按照这个 link
最后 运行 这个命令 php artisan migrate
您可以这样做,但您必须创建自己的 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
替代方案:artisan修补匠
您始终可以使用 php artisan tinker
到 运行 PHP 代码(使用 Laravel 自举):
php artisan tinker
> DB::statement('CREATE DATABASE your-desired-database-name');