Hướng dẫn sử dụng PgAdmin cho dự án Laravel Fullstack

Bạn cần một công cụ mạnh mẽ, đầy đủ chức năng, và lại có giao diện đồ họa thân thiện để quản trị PostgreSQLPgAdmin chính là công cụ bạn cần. PgAdmin là một công cụ quản lý PostgreSQL Database cung cấp nhiều tính năng như kết nối tới PostgreSQL, thực thi SQL Query, backup và khôi phục Database.

1/ Hướng dẫn cài đặt và cấu hình ProsgreSQL

Bước 1: Trước tiên để download PgAdmin thì cần dùng browser để truy cập vào đường link sau:

https://www.postgresql.org/download

Bước 2: Chạy file exe vừa download và thực hiện các bước cài đặt thông thường.

Tiếp theo đến bước dưới đây cân thực hiện bỏ check Stack Builder.

Cuối cùng, cài đặt password và lựa chọn cổng kết nối mặc định như vậy là PostgreSql đã được cài đặt thành công.

Bước 3: Sau khi cài đặt thành công PgAdmin, bấm vào biểu tượng của pgAdmin 4 để mở homepage

Tại đây tiến hành cài đặt user người dùng và tạo server để chứa database.

2/ Hướng dẫn sử dụng PgAdmin kết nối với dự án Laravel

Bước 1: Để PgAdmin có thể nhận được database của dự án trước hết tại dự án của mình, các bạn cần khởi tạo các migrate files tại dự án của mình.

Để khởi tạo các migrations này các bạn cần thực hiện câu lệnh sau tại terminal:

php artisan make:migration create_flights_table

Dưới đây là một ví dụ cho 1 file migration sau khi câu lệnh trên được thực thì.

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

Các migration này sẽ tự động được thêm vào PgAdmin database sau khi các bạn thực hiện seeding table.

php artisan make:seeder UserSeeder

Để kiểm tra tình trạng migration files thì các bạn có thể chạy câu lệnh sau để kiểm tra:

php artisan migrate:status

Trong một số trường hợp migrations bị gián đoạn hoặc phát sinh các lỗi, các bạn có thể khắc phục vấn đề này bằng cách chạy câu lệnh sau:

php artisan migrate:rollback

Câu lệnh trên là lệnh giúp các bạn quay trở về lần migrate trước đó.

Ngoài ra trong một số trường hợp, người dùng muốn xóa bỏ hoàn toàn database của mình thì thể dùng câu lệnh sau để xóa bỏ hoàn toàn database của mình:

php artisan migrate:fresh
 
php artisan migrate:fresh --seed

Bước 2: Thực hiện khỏi tạo bảng và chỉnh sửa nội dung của bảng.

Một ví dụ của nội dung của một table được tạo

use IlluminateDatabaseSchemaBlueprint;
use IlluminateSupportFacadesSchema;
 
Schema::create('users', function (Blueprint $table) {
    $table->id();
    $table->string('name');
    $table->integer('parent_id')->unsigned()->nullable();
    $table->decimal('trx_fee_usd', 20, 6);
    $table->timestamps();
});

Như các bạn có thể thấy ở đây, từng cột của bảng đã được quy định bằng các thuộc tính nhất định. Vi dụ Integer(số nguyên), timestamps(thời gian hiện tại). Việt thay đổi thuộc tính của bảng như trên còn có thể được thực hiện trược tiếp trong bảng của PgAdmin.

Bước 3: Cách CRUD với PgAdmin

A/ Truy xuất dữ liệu tử bảng

Để truy xuất dữ liệu tử database các bạn có thể thược hiện các câu lệnh như sau:

    public function index()
    {
        $you = auth()->user()->id;(Bước validate user optional)
        $users = DB::table('.....Tên bảngđược truy xuất.....')
        ->select('.......Các cột cần truy xuất......')

        ->get();
        return response()->json(... );
    }
B/ Cập nhật dữ liệu của bảng

Để cập nhật dữ liệu cho bảng các bạn cần thực hiện câu lệnh như sau:

public function update(Request $request, $id)
    {
        $validatedData = $request->validate([
            'name'       => 'required|min:1|max:256',
            'email'      => 'required|email|max:256'
        ]);
        $user = User::find($id); (.....tìm kiếm theo user id.....)
        $user->name       = $request->input('name');
        $user->email      = $request->input('email');
        $user->save();
        //$request->session()->flash('message', 'Successfully updated user');
        return response()->json( ['status' => 'success'] );
    }
C/ Xóa dữ liệu của bảng
 public function delete(Request $request)
    {
        DB:: tên();
        try {
            $Tên = $request->input('Tên cột');
                $Tên biến= Tên bảng của cột::find($tên cột);
                  Tên bảng::where(...)->where('tên cột', $tên bảng->id)->delete();
                    $Tên biến->delete();
            }
            DB::commit();
            return response()->json();
        }
D/ Tạo dữ liệu mới cho bảng

Để tiến hành tạo mới data cho bảng, các bạn có thể xem mẫu sau:

public function create(Request $request)
    {
            $user= new Users();
            $user->phone          = $request->input('phone');
            $user->address      = $request->input('address ');
            $user->user_id            = auth()->user()->id;
            $user->save();
            return response()->json(ResponseHelper::getSuccess());
    }

Bước 4: Backup và Restore dữ liệu của bảng

Nhằm đảm bảo database được bảo vệ và tránh mất mát khi gặp lỗi, người dùng thường tiến hành back up file data thành các file JSON và tải về lưu trữ tại ổ cứng. Để back up data chúng ta có thể làm như hình sau:

Để restore chúng ta cần có file JSON chữa dữ liệu. Sau đó chọn đường dẫn đến file này và tiến hành restore, sau khi hoàn thành sẽ được lưu lại trên PgAdmin.

Như vậy trên đây là phần căn bản về cách sử dụng PgAdmin cho dự án Laravel. Cảm ơn các bạn đã quan tâm bài viết, enjoy coding!

 

@ Lê Minh – Cựu học viên Ironhack Việt Nam

Để lại một câu trả lời