How to create database schema (table) in Laravel?

后端 未结 5 1153
眼角桃花
眼角桃花 2021-02-09 07:53

I\'m new to Laravel.I\'m trying to create database in Laravel. I tried in console with:

Schema::create

相关标签:
5条回答
  • 2021-02-09 08:09

    my working example:

    create new artisan command:

    php artisan make:command mysql
    

    the content of App\Console\Commands\mysql.php :

    namespace App\Console\Commands;
    
    use Illuminate\Console\Command;
    use Illuminate\Support\Facades\DB;
    
    class mysql extends Command
    {
        /**
         * The name and signature of the console command.
         *
         * @var string
         */
        protected $signature = 'mysql:createdb {name?}';
    
        /**
         * The console command description.
         *
         * @var string
         */
        protected $description = 'Create a new mysql database schema based on the database config file';
    
        /**
         * Create a new command instance.
         *
         * @return void
         */
        public function __construct()
        {
            parent::__construct();
        }
    
        /**
         * Execute the console command.
         *
         * @return mixed
         */
        public function handle()
        {
            $schemaName = $this->argument('name') ?: config("database.connections.mysql.database");
            $charset = config("database.connections.mysql.charset",'utf8mb4');
            $collation = config("database.connections.mysql.collation",'utf8mb4_unicode_ci');
    
            config(["database.connections.mysql.database" => null]);
    
            $query = "CREATE DATABASE IF NOT EXISTS $schemaName CHARACTER SET $charset COLLATE $collation;";
    
            DB::statement($query);
    
            config(["database.connections.mysql.database" => $schemaName]);
    
        }
    }
    

    then run: (schema_name is optionally)

    php artisan mysql:createdb schema_name
    
    0 讨论(0)
  • 2021-02-09 08:18

    First you have to set database name,username and password in database.php in config folder.it look like

    'connections' => [
    
            'sqlite' => [
                'driver'   => 'sqlite',
                'database' => storage_path('database.sqlite'),
                'prefix'   => '',
            ],
    
            'mysql' => [
                'driver'    => 'mysql',
                'host'      => env('DB_HOST', 'localhost'),
                'database'  => env('DB_DATABASE', 'news'),
                'username'  => env('DB_USERNAME', 'root'),
                'password'  => env('DB_PASSWORD', ''),
                'charset'   => 'utf8',
                'collation' => 'utf8_unicode_ci',
                'prefix'    => '',
                'strict'    => false,
            ],
    
            'pgsql' => [
                'driver'   => 'pgsql',
                'host'     => env('DB_HOST', 'localhost'),
                'database' => env('DB_DATABASE', 'forge'),
                'username' => env('DB_USERNAME', 'forge'),
                'password' => env('DB_PASSWORD', ''),
                'charset'  => 'utf8',
                'prefix'   => '',
                'schema'   => 'public',
            ],
    
            'sqlsrv' => [
                'driver'   => 'sqlsrv',
                'host'     => env('DB_HOST', 'localhost'),
                'database' => env('DB_DATABASE', 'forge'),
                'username' => env('DB_USERNAME', 'forge'),
                'password' => env('DB_PASSWORD', ''),
                'charset'  => 'utf8',
                'prefix'   => '',
            ],
    
        ],
    

    if you are using xampp then right click on your project folder and click on use composer here

    then run following command

     php artisan migrate:install
    

    and you can create table like

    php artisan make:migration create_users_table
    

    Migration Structure

    A migration class contains two methods: up and down. The up method is used to add new tables, columns, or indexes to your database, while the down method should simply reverse the operations performed by the up method.

    Within both of these methods you may use the Laravel schema builder to expressively create and modify tables. To learn about all of the methods available on the Schema builder, check out its documentation. For example, let's look at a sample migration that creates a flights table:

    <?php
    
    use Illuminate\Database\Schema\Blueprint;
    use Illuminate\Database\Migrations\Migration;
    
    class CreateFlightsTable extends Migration
    {
        /**
         * Run the migrations.
         *
         * @return void
         */
        public function up()
        {
            Schema::create('flights', function (Blueprint $table) {
                $table->increments('id');
                $table->string('name');
                $table->string('airline');
                $table->timestamps();
            });
        }
    
        /**
         * Reverse the migrations.
         *
         * @return void
         */
        public function down()
        {
            Schema::drop('flights');
        }
    }
    

    To know all artisan command run following command

    php artisan
    

    for more read following document http://laravel.com/docs/5.1/migrations

    0 讨论(0)
  • 2021-02-09 08:18

    Database setup in Laravel

    • open .env file on root

    example :-

      DB_CONNECTION=mysql
      DB_HOST=127.0.0.1
      DB_PORT=3306
      DB_DATABASE=dbname
      DB_USERNAME=root
      DB_PASSWORD=password
    

    Now run command

      php artisan migrate:install
      php artisan make:migration users // for creating new table 
    
    0 讨论(0)
  • 2021-02-09 08:20

    If you want to create model with artisan do it this way:

    php artisan make:model ModelName
    
    0 讨论(0)
  • 2021-02-09 08:26

    I just created an interesting Laravel package that has some handy set of artisan commands like create or drop database, dump database or load from .sql dump, or to see which fields (and field types) are present in your models ...

    Check it out: https://github.com/vkovic/laravel-commando

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