Symfony2 like database creation command in laravel console?

后端 未结 3 691
忘了有多久
忘了有多久 2021-01-16 20:32

I have used symfony2 console to create database. If I want to create a database named \"symfony\" I usually mentioned that name in parameters.yml file and run the below comm

相关标签:
3条回答
  • 2021-01-16 21:24

    As far as I know, you can use php artisan migrate to make migrations including creating tables from Laravel Console. However, you need to create and modify migration files first, where you can create or drop tables.

    So if you want to create a table directly from Laravel Console using something like php artisan create database table ***, it is not possible.

    0 讨论(0)
  • You can do that but you will have to create your own command.

    First, run php artisan command:make CreateDatabase --command=database:create to generate app/commands/CreateDatabase.php

    Then open that file and change it to this: (I left out all comments, but you can obviously keep them in there)

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

    Now you only have to register the command in app/start/artisan.php:

    Artisan::add(new CreateDatabase);
    

    and you're good to go.

    That's how you call it:

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

    Alternative: artisan tinker

    You can always use php artisan tinker to run PHP code (with Laravel bootstrapped):

    php artisan tinker
    > DB::statement('CREATE DATABASE your-desired-database-name');
    
    0 讨论(0)
  • 2021-01-16 21:27

    I think you can not create database through command so go to app/config/database.php and set your database configuration. details 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'    => '',
    ),
    

    after setting you can create table through command

    php artisan migrate:make create_user_table --table=users
    

    it will generate a file to app/database/migrations name create_users_table. . . . . then you create your table following this link

    and finally run this command php artisan migrate

    0 讨论(0)
提交回复
热议问题