过期知识:thinkphp5 使用migrate给现有的数据表新增表字段

news2024/9/17 9:20:36

个人开发网站记录, 这个文章主要是个以后健忘的我看的.
        我在搞我的画笔审核 , 发现数据表的画笔数据在审核驳回的时候还是软删除好一些, 
免得用户找不到之前上传的画笔数据, 后期也可以考虑重新显示给用户,让用户可以修改画笔信息重新提交审核.
        这个时候想起了thinkphp5 框架提供的软删除功能, 不过使用软删除时发现 我当时设计画笔表结构没有考虑到delete_time字段设置, 怪不得在使用软删除时,就觉得又会报错, 没字段,怎么能在数据表区分数据呢, 真觉得的自己时傻冒. 

        考虑到自己是使用migrate数据库迁移工具创建数据表的, 我如果手动在数据表用sql语句修改表结构, 到时候后面为将来新功能加新的数据表, 又会run报错. 以前不明白,现在总算明白run不成功的原因了.
        怎么用migrate给现有的数据表(已有数据)新增表字段,来实现软删除. 

先看我找到的指导文档ThinkPHP官方手册,(我这个找不到以前大佬的代码评论,我记得另一个官方手册有以前的大佬的代码评论) 

根据示例代码, 我给我的temphuabi临时画笔表开启了软删除功能, 

<?php
namespace app\api\model;
use think\Model;
use think\model\concern\SoftDelete;

class TempHuabi extends Model
{
    use SoftDelete;
    protected $deleteTime = 'delete_time';
    protected $defaultSoftDelete = 0;
}

然后查询到对应的画笔数据
 $temp_huabi  = TempHuabiModel::where('status', 0)->where('id', $temp_huabi_id)->find();
$temp_huabi->delete(); //软删除

测试审核驳回接口,出现报错, 找不到我temp_huabi数据表的delete_time字段, (哦,原来表结构要有delete_time这个字段才能软删除)
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'ptx_temp_huabi.delete_time' in 'where clause'

为了不影响将来迁移创建新数据表, (结合查询文心与通义ai, 无意中发现的解决方案, ai给来给去都是不符合我的实际 , 不过通义它给了update(),我试了一下,发现使用中能被注释出来, 这代表能用. )

这里我创建多一个新的实例, 为了提醒, UpdataTempHuabi说明是更新TempHuabi数据表,

php think migrate:create UpdataTempHuabi

接下来在****_updata_temp_huabi.php文件中, 
选择现有的TempHuabi表,用update更新即可

 public function change()
    {
        $this->table('temp_huabi')   // 添加 delete_time 列
            ->addColumn('delete_time', 'integer', ['null' => true, 'default' => 0, 'comment' => '删除时间戳'])
            ->update();
    }

run运行迁移就行,这迁移没有出来错误.

php think migrate:run

显然已经更新了表结构了, 但是这个int(11)我感觉不怎么好 ,不过它确实给我现有的表数据都插多了这个字段,

 

 
但是实际使用软删除功能,没有成功,  报错为空, 
果然是上面时间戳类型设置错误了, 我应该跟  ->addTimestamps()一样用这个类型,
之前设置的字段删除,在迁移记录表中删除这一条数据 修正如下,应该用timestamp, 我真蠢, 类型设错,时间戳怎么放
 

  public function change()
    {
        $this->table('temp_huabi')   // 添加 delete_time 列
            ->addColumn('delete_time', 'timestamp', ['null' => true,  'comment' => '删除时间戳'])
            ->update();
    }


软删除delete一下,哦,删除时间戳总算出现了

再次查阅ThinkPHP官方手册,看到最下面的代码,,,,,,,
突然觉得我用迁移工具更新数据表字段delete_time的代码, 
应该放在up还是down方法里面, 而不是新建一个迁移文件, 虽然都能用, ,,,
暂时保留疑问

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1963808.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ViewModel相关

郭霖公众号 原作者原文 前言 ViewModel不仅是Activity和Fragment的数据集中管理和通讯&#xff0c;也是促进了MVVM和MVI架构规范&#xff0c;此文为深入理解ViewModel 概念 ViewModel是复制准备和管理Activity和Fragment数据的类&#xff0c;他还处理Activity或Fragment与应…

探索天穹数仓自治能力的新实践

探索天穹数仓自治能力的新实践 随着业务和技术的发展&#xff0c;传统数仓模式向数智数仓模式演进&#xff0c;数据治理面临诸多挑战。自治平台采用双引擎策略&#xff0c;注重感知能力、观测能力、诊断能力和优化能力的建设&#xff0c;实现了对数据的精细化管理。例如&#x…

鸿蒙应用框架开发【基于原生能力的无障碍模式】

基于原生能力的无障碍模式 介绍 本示例基于系统提供的无障碍阅读能力&#xff0c;实现了无障碍扩展服务集成、原生组件屏幕朗读以及多个控件组合标注。 效果图预览 原生组件屏幕朗读&#xff1a; 创建说明&#xff1a; 在已创建工程的ets文件夹下创建accessibility文件夹&…

SCIEI双检CCF期刊,硕博毕业生的福音,投稿欲从速!

SCI&EI双检CCF期刊&#xff0c;目前已稳定检索46年&#xff0c;CCF-C类&#xff0c;且发文量稳定&#xff0c;国人友好&#xff0c;发过的人都说审稿极速。 期刊详情 【期刊简介】IF&#xff1a;4.0-5.0 JCR1区中科院3区 【出版社】Elsevier出版社 【检索情况】SCI&a…

【文件fd】深入理解和实现Linux底下一切皆文件 | 系统和语言文件操作二者关系_封装 | 系统调用为什么怎样封装成库函数

目录 1.系统调用的打开/读/写文件操作 2.如何理解Linux底下一切皆文件 2.1设备属性 2.2设备的操作方法 3.如何实现Linus底下一切皆文件 4.源码查看 5.系统和语言文件操作二者关系 5.1 flags选项和C语言的"w""a"方式 二者的关系 5.2 系统的文件描…

llama-3.1下载部署

llama-3.1 下载 下载 huggingface 详情页填写申请后等待审核 点击 头像->setting->access token 创建token 配置环境变量 下载模型 pip install -U huggingface_hubhuggingface-cli download --resume-download meta-llama/Meta-Llama-3.1-8B-Instruct --local-di…

Linux ——互斥量

1.进程线程间的互斥相关背景概念 临界资源&#xff1a;多线程执行流共享的资源就叫做临界资源临界区&#xff1a;每个线程内部&#xff0c;访问临界资源的代码&#xff0c;就叫做临界区互斥&#xff1a;任何时刻&#xff0c;互斥保证有且只有一个执行流进入临界区&#xff0c;…

使用 cPanel WHM 重置 MySQL 根密码

MySQL 是托管在 cPanel 管理服务器上的网站的主要数据库软件&#xff0c;广泛用于 WordPress 和电子商务应用程序&#xff0c;例如 Magento。由于 MySQL 需要管理多个不同网站和数据库的读写权限&#xff0c;因此它是一个多用户系统。 每个用户账户都有一组权限限制其访问。而M…

【报错解决】Sql server 2022连接数据库时显示证书链是由不受信任的颁发机构颁发的

SSMS 20在连接Sql server 2022数据库时有如下报错&#xff1a; A connection was successfully established with the server, but then an error occurred during the login process. (provider: SSL Provider, error: 0 - 证书链是由不受信任的颁发机构颁发的。 原因是尝试使…

C++进阶 二叉搜索树

目录 二叉搜索树概念 二叉搜索树的模拟实现 二叉搜索树的查找 二叉搜索树的插入 二叉搜索树的删除 二叉搜索树的性能分析 二叉搜索树的应用 K模型 KV模型 二叉搜索树概念 二叉搜索树又称二叉排序树&#xff0c;它或者是一棵空树&#xff0c;或者是具有以下性质的二叉树…

nginx的反向代理及负载均衡

nginx的反向代理 安装包链接https://nginx.org/download/nginx-1.26.1.tar.gz yum -y install gcc gcc-c pcre-devel openssl-devel [rootstaticserver ~]# tar -xzvf nginx-1.26.1.tar.gz [rootstaticserver nginx-1.26.1]#./configure --prefix/usr/local/nginx --userngi…

怎么提高视频的声音?提高视频的声音的多种方法

在制作和编辑视频的浩瀚旅途中&#xff0c;声音质量不仅是引导观众情感波动的舵手&#xff0c;更是构建故事氛围、深化主题表达不可或缺的基石。它如同画面背后的灵魂&#xff0c;悄无声息地牵引着每一位观众的思绪&#xff0c;穿梭于现实与想象的边界。从温馨的旁白讲述到激昂…

单天下载1W+?木途美APP对比体验

在当下的民宿市场&#xff0c;木鸟、途家、美团三家民宿预订平台遥遥领先。木鸟民宿最新发布的报告中提到&#xff0c;7月以来民宿订单环比上涨88%&#xff0c;尽管酒店业进入量涨价跌时代&#xff0c;但民宿平台们似乎活得更好了。 特色房源为王永不过时 房源量大意味着覆盖…

Linux系统之DHCP服务配置

1、准备阶段 Windows&#xff08;客户端&#xff09;开启Vmnet8网卡Linux6&#xff08;服务端&#xff09;网络连接选择NAT模式&#xff0c;并配置IP地址为192.168.11.1/24Linux5&#xff08;客户端&#xff09;网络连接选择NAT模式将NAT的DHCP功能取消 2、DHCP服务器相关软件…

(vue)el-cascader级联选择器按勾选的顺序传值,摆脱层级约束

(vue)el-cascader级联选择器按勾选的顺序传值,摆脱层级约束 需求&#xff1a;按勾选的顺序给后端传值 难点&#xff1a;在 Element UI 的 el-cascader 组件中&#xff0c;默认的行为是根据数据的层级结构来显示选项&#xff0c;用户的选择也会基于这种层级结构&#xff0c;el-…

SQL必知必会

SQL必知必会 一些SQL知识&#xff0c;出自极客时间陈旸老师《SQL必知必会》 https://time.geekbang.org/column/intro/100029501 基础 视图 视图作为一张虚拟表&#xff0c;帮我们封装了底层与数据表的接口。它相当于是一张表或多张表的数据结果集。视图的这一特点&#x…

【C/C++】C语言到C++的入门知识点(主要适用于C语言精通到Qt的C++开发入门)

【C/C】C语言到C的入门知识点&#xff08;主要适用于C语言精通到Qt的C开发入门&#xff09; 文章目录 C语言与C的不同C中写C语言代码C语言到C的知识点Qt开发中需要了解的C基础知识namespace输入输出字符串类型class类构造函数和析构函数&#xff08;解析函数&#xff09;类的继…

20240801 每日AI必读资讯

&#x1f50a;OpenAI向ChatGPT Plus用户推出高级语音模式 - 只给一小部分Plus用户推送&#xff0c;全部Plus用户要等到秋季 - 被选中的Alpha 测试的用户将收到一封包含说明的电子邮件&#xff0c;并在其移动应用中收到一条消息。 - 同时视频和屏幕共享功能继续推出&#xff…

【论文速读】| MoRSE:利用检索增强生成技术填补网络安全专业知识的空白

本次分享论文&#xff1a;MoRSE: Bridging the Gap in Cybersecurity Expertise with Retrieval Augmented Generation 基本信息 原文作者&#xff1a;Marco Simoni, Andrea Saracino, Vinod Puthuvath, Maurco Conti 作者单位&#xff1a;意大利比萨国家研究委员会信息学与…

2024 年最新 windows 操作系统搭建部署 nginx 服务器应用详细教程(更新中)

nginx 服务器概述 Nginx 是一款高性能的 HTTP 和 反向代理 服务器&#xff0c;同时是一个 IMAP / POP3 / SMTP 代理服务器。Nginx 凭借其高性能、稳定性、丰富的功能集、简单的配置和低资源消耗而闻名。 浏览 nginx 官网&#xff1a;https://nginx.org/ Nginx 应用场景 静态…