ipunkt/data-transformer

此包已被废弃且不再维护。没有建议的替代包。

用GDPR相关数据的虚假数据填充预发布数据库。

dev-master 2019-11-22 10:56 UTC

This package is auto-updated.

Last update: 2023-06-22 19:15:50 UTC


README

Latest Stable Version Latest Unstable Version License Total Downloads

从生产(源)到预发布(目标)数据库的数据将被操作。当你不喜欢使用用户真实数据时,这个工具将肯定有用。

此包的主要任务是伪造与GDPR相关的数据。请查看以下列表

  • 名称
  • 电子邮件地址
  • 电话号码
  • 信用卡
  • 出生日期
  • 出生地
  • 身份证号
  • 在线数据
    • IP地址
    • 位置数据(GPS)
  • 图片
  • 车牌号
  • 健康数据

当你尝试处理真实数据时,必须考虑此列表,因此必须转换与GDPR相关的数据。其余的将被1:1保留。

安装 - 快速开始

composer require ipunkt/data-transformer

或者

作为替代,您可以将这些行添加到您的composer文件中,然后在控制台中运行composer install

"require": {
	"ipunkt/data-transformer": "^1.0"
}

配置

我假设您已经在database.php中设置了一个连接。如下所示

'mysql' => [
       'driver' => 'mysql',
       'host' => env('DB_HOST', '127.0.0.1'),
       'port' => env('DB_PORT', '3306'),
       'database' => env('DB_DATABASE', 'forge'),
       'username' => env('DB_USERNAME', 'forge'),
       'password' => env('DB_PASSWORD', ''),
       'unix_socket' => env('DB_SOCKET', ''),
       'charset' => 'utf8mb4',
       'collation' => 'utf8mb4_unicode_ci',
       'prefix' => '',
       'prefix_indexes' => true,
       'strict' => true,
       'engine' => null,
   ],

当您运行这两个命令时(php artisan transform:dumpphp artisan transfrom:data),系统将询问用于源的连接。

  • 运行此命令:php artisan vendor:publish然后选择Ipunkt\DataTransformer\DataTransformerServiceProvider
  • config/data-transformer.php中找到您的配置文件
  • 编辑您的配置,例如:将name更改为username和/或fakeName更改为value或相反
  • 运行php artisan transform:dump {host} {db} {username} {password}您的标准配置文件将是data-transformer.json,您可以在应用程序的根目录中找到它。例如php artisan transform:dump 000.000.0.000 transformer root pw
  • 000.000.0.000 --> host的IP地址
  • transformer --> DB_NAME
  • root --> USERNAME
  • pw --> PASSWORDdata-transformer.json中您会找到类似以下的内容
{
 "users": {
   "id": "value",
   "name": "fakeName",
   "email": "fakeEmail",
   "action_on_redeem_json": "value",
   "action_on_expire_json": "value",
   "created_at": "value",
   "updated_at": "value"
 }
}

以下是所有可以转换的数据列表

  • name => fakeName通过faker $this->faker->name
  • email => fakeEmail通过faker $this->faker->safeEmail
  • place_of_birth => fakePlaceOfBirth通过faker $this->faker->country
  • data_health => fakeDataHealth通过faker $this->faker->randomDigit
  • id_number => fakeID通过faker $this->faker->uuid
  • phone_number => fakePhoneNumber通过faker $this->faker->phoneNumber
  • credit => fakeCredit通过faker $this->faker->bankAccountNumber
  • license_plate => fakeLicensePlate通过faker $this->faker->randomLetter
  • image => fakeImage通过faker $this->faker->image
  • ip_address => fakeIPAddress通过faker $this->faker->localIpv4
  • data_location => fakeDataLocation通过faker $this->faker->latitude
  • address => fakeAddress通过faker $this->faker->address
  • date_of_birth => fakeDateOfBirth 通过 faker $this->faker->dateTime()->format('Y-m-d')

在此您可以决定是否必须转换名称,例如。如果您不对名称进行任何更改,则它将被伪造。如果您不想转换名称,则必须将 fakeName 替换为 value。就这样。

第二步和最后一步:运行第二个命令 php artisan transform: {host} {db} {username} {password}(类似于 transform:dump 命令)
{--target=mysql}

您需要将 mysql 更改为您在 database.php 中的相应值

如果您想禁用具有/有外键的表,请在第二个命令的末尾添加以下标志 foreign-keys-checksphp artisan transform:dump {source} {target} --foreign-keys-checks=no

注意
如果您更改了配置文件,则必须这样做;否则您不需要做任何事情。

完成!