gear
Image not found

How to create database, table, and migrate without artisan command

Comment (0)

Admin


1. Create the Database

You need to create your database manually or programmatically if it’s not already created.

Manually:

  • Log in to your database management system (e.g., MySQL, PostgreSQL).
  • Execute SQL commands to create a new database.

For example, in MySQL, you might use:

 # sql

CREATE DATABASE your_database_name;

Programmatically (MySQL Example):

  • Use a database connection script to run the creation command.
 

# php

use Illuminate\Support\Facades\DB;

DB::statement('CREATE DATABASE your_database_name');

Ensure your .env file has the correct database connection settings.

2. Create Migrations Manually

Instead of running the php artisan make:migration command, you’ll manually create migration files. Migration files are typically stored in database/migrations and have a timestamp as part of the filename.

Example of a Migration File: Create a new PHP file in database/migrations (e.g., 2024_08_20_000000_create_users_table.php).

 

# php

use Illuminate\Database\Migrations\Migration;

use Illuminate\Database\Schema\Blueprint;

use Illuminate\Support\Facades\Schema;

class CreateUsersTable extends Migration {

    public function up() {

        Schema::create('users', function (Blueprint $table) {

            $table->id(); $table->string('name');

            $table->string('email')->unique();

            $table->timestamp('email_verified_at')->nullable();

            $table->string('password');

            $table->rememberToken();

            $table->timestamps();

    });

}

 

    public function down() {

        Schema::dropIfExists('users');

    }

}

 

3. Run Migrations Programmatically

 

You can execute migrations programmatically using the Laravel Migration classes. For this, you’ll use Laravel’s Migration class and Artisan commands directly within your PHP code.

Example Script to Run Migrations:

 

# php

use Illuminate\Database\Migrations\Migrator;

use Illuminate\Support\Facades\Artisan;

// Make sure to include necessary bootstrap code if running outside of Laravel context

// Call Artisan migrate command

Artisan::call('migrate');

If you’re not using Artisan and want to manually invoke migrations:

 

# php

use Illuminate\Database\Migrations\Migrator;

use Illuminate\Support\Facades\App;

$app = require_once __DIR__.'/bootstrap/app.php';

$app->make(Illuminate\Contracts\Console\Kernel::class)->bootstrap();

$migrator = App::make(Migrator::class);

$migrator->run(database_path('migrations'));

 

4. Handle Rollbacks

To roll back migrations programmatically, you can use:

 

# php

Artisan::call('migrate:rollback');

Or manually, if bypassing Artisan:

 

# php

$migrator->rollback(database_path('migrations'));

 

Notes

  • Seeding: If you need to seed your database, you’ll also need to handle this manually. Use Artisan::call('db:seed') or invoke seeders directly.

  • Testing: Ensure you test these procedures in a development environment before running them in production.

  • Environment Configuration: Ensure that your .env file and database configuration are correctly set up.


Others Problem Fix Stroy



Comments (0)

Your Comment