php 管理数组数据库,【PHP】一个用PHP数组管理数据库表结构更新功能的烂代码~...

40bbefb76b77

下载.jpg

generate-mysql-schema

#### 介绍

2020/9/5:

每次写些自己的东西时候总是遇到表要加新字段,然后就很麻烦要本地改完后再去自己服务器整一遍。

找了一圈没找到用PHP来控制数据库表结构的包,自己尝试写写吧。

一个php文件代表一张表,运行时没有表则直接新增,存在的话则更新表结构(我没有判断字段是否改动更新,都是直接全部更新)。

有人用的话,同时又闲的话可以把我这烂代码改改,哈哈哈~

#### 软件架构

今天天气真好~

#### 安装教程

1. 项目里运行: composer require lpc/generate-mysql-schema dev-master

2. git地址:[https://gitee.com/lpccc/generate-mysql-schema]

我的目录结构:就这样!!!

40bbefb76b77

微信截图_20200907173729.png

#### 使用说明

1. 将2中的代码放进项目的php文件内,可在控制台执行都行;

2. 运行代码需要导入配置文件 run_base.php

$info = require "config/database.php";

$paramArr = getopt('t:');

$tableName = isset($paramArr['t'])?$paramArr['t']:null;

$lpc = new Run($info,$tableName);

echo "

";

var_dump($lpc->generate());//返回 true|false

exit;

控制台输入:

php run_base.php //全部表检查更新

php run_base.php -t user //检查更新指定表

php run_base.php -t user,user1 //检查更新指定多个表

3.配置文件 database.php

/*

* @Author: lpc

* @DateTime: 2020/9/5 18:16

* @Description: 管理数据库表配置文件

*/

return [

//连接数据库信息

'source_data' => [

'connection_type' => "mysqli",

'host' => '127.0.0.1',

'port' => 3306,

'username' => 'root',

'password' => 'root',

'dbname' => "lpc",

],

//表文件存在的位置

'dbschema_dir_path' => [

"table_path1",

"table_path2",

],

//自定义表字段类型

'diy_field_type' => [

'int' => 'int',

'varchar' => 'varchar',

]

];

4.上面配置文件的表文件格式,table_path1/user.php

table_path1文件路径要放在根目录或者代码能访问到的地方

/*

* @Author: lpc

* @DateTime: 2020/9/5 19:02

* @Description: 表模板

*/

/**

* type 类型

* length 类型长度

* unsigned 是否无符号

* autoincrement 是否自动增长

* required 是否必填

* default 默认值

* comment 注释

*/

return [

'columns' => [

'user_id' => [

'type' => 'int',

'length' => 11,

'unsigned' => true,

'autoincrement' => true,

'comment' => '用户Id',

],

'name' => [

'type' => 'varchar',

'length' => 50,

'required' => true,

'default' => 'lpc',

'comment' => '用户名',

],

'sex' => [

'type' => 'int',

'length' => 11,

// 'default' => 0,

// 'autoincrement' => true,

'comment' => '用户性别',

],

'age' => [

'type' => 'int',

'length' => 11,

'default' => 18,

'comment' => '用户年纪',

],

],

//主键 多个主键['user_id','name']

'primary' => ['user_id', 'sex'],

//索引

'index' => [

'ind_name' => ['type' => "normal", 'columns' => ['name','sex']],

'ind_age' => ['type' => "unique", 'columns' => ['age']],

],

//表名

'table_name' => 'user2',

//表注释

'comment' => '用户表',

'engine' => 'InnoDB',

'charset' => 'utf8mb4',

'collate' => 'utf8mb4_general_ci'

];

5 .配置完以上文件,就是直接运行$run->generate();了,就这样。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值