strongbond/db-watcher

此软件包最新版本(1.0.1)没有可用的许可证信息。

使用这个工具,我们可以记录在表级别发生的所有更改。

1.0.1 2022-07-30 05:37 UTC

This package is auto-updated.

Last update: 2024-09-29 06:14:52 UTC


README

PHP 软件包,用于跟踪您表上发生的修改。

##注意:此功能基于触发器。因此,即使是直接通过某些IDE在表上进行的修改也会被跟踪。

步骤 0:php artisan vendor:publish

    // This step will put the config file [dbwatcher.php] in the config folder.
    Below is the content in config file
    return [
    "db_name" => env("DB_DATABASE"),
    "tables_to_track" => [
    
    ["table" => "supplier_master", "column" => ["supplier_name","qnty"], "track_event" => ["insert", "update","delete]],
    
    // table name for which tracking is required, can't be left blank
    // column key if empty will track all columns 
    // track_event is an array of events to track if empty will track all events
    
    ],
    "log_table_name" => 'sb_log',
    "common_columns_to_ignore" => ["created_at", "updated_at", "deleted_at"]
    ];

步骤 1:创建一个新对象

    $db_tracker_obj = new DBWatcher();

步骤 2:生成跟踪表 | 完成后可以跳过此步骤 | 创建了2个表

    $db_tracker_obj->drop_recreate_log_tables();

步骤 3:生成跟踪触发器 | 在 dbwatcher.php 配置文件中进行任何更改后,需要再次运行此步骤以反映新更改。

    $db_tracker_obj->refreshTracker();

步骤 4:为将要修改数据库的用户设置 user_id。如果您错过此步骤,将使用 root@localhost。

    $db_tracker_obj->action_performed_by_user(5);

步骤 5:执行 CRUD 操作。

    DB::table("venues")->insert([
        "venue_name" => "Carnival",
        "venue_location" => "Mumbai",         
        "created_at" => Carbon::now()->toDateTimeString(),
        "updated_at" => Carbon::now()->toDateTimeString()
    ]);

步骤 6:在 CRUD 操作后取消设置 user_id。

    $db_tracker_obj->unset_action_performed_by_user();