ipunkt / data-transformer
用GDPR相关数据的虚假数据填充预发布数据库。
Requires
- php: ^7.2
- ext-json: *
- fzaninotto/faker: ^1.8
- illuminate/console: ^5.7
- illuminate/database: ^5.7
- illuminate/support: ^5.7
This package is auto-updated.
Last update: 2023-06-22 19:15:50 UTC
README
从生产(源)到预发布(目标)数据库的数据将被操作。当你不喜欢使用用户真实数据时,这个工具将肯定有用。
此包的主要任务是伪造与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:dump
和php 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
-->PASSWORD
在data-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-checks
:php artisan transform:dump {source} {target} --foreign-keys-checks=no
注意
如果您更改了配置文件,则必须这样做;否则您不需要做任何事情。
完成!