首页 > 数据库 >thinkphp5数据库迁移工具 migration(longtext/tinyint等)

thinkphp5数据库迁移工具 migration(longtext/tinyint等)

时间:2024-09-12 10:38:22浏览次数:9  
标签:comment false longtext default thinkphp5 signed tinyint limit addColumn

我用tp5

创建文件

php think migrate:create User

在User文件里面写

public function up()
{
$this->table('a3')
->addColumn('a', 'integer', ['limit' => '10','default' => 0,'signed'=>false,'comment'=>'备注'])
->create();
}
这里面要讲

addColumn有三个参数,在第三个参数里

signed=true 表示有符号

signed=false 表示无符号

null=true 表示是否为空

如果你想设置int 类型可以这样写

->addColumn('a', 'integer', ['limit' => '10','default' => 0,'signed'=>false,'comment'=>''])

如果你想设置bigint 类型可以这样写

->addColumn('g', 'biginteger', ['limit' => '10','default' => 0,'signed'=>false,'comment'=>'备注'])
如果你想设置tinyint类型可以这样写

->addColumn('h', 'integer', ['limit' => '255','default' => 0,'signed'=>false,'comment'=>''])
如果你想设置decimal类型可以这样写

->addColumn('j', 'decimal', ['precision'=>4,'scale'=>'2','default' => '0.00','comment'=>''])
如果你想设置set类型可以这样写

->addColumn('i', 'set', ['values' => ['1','2'],'default'=>'1','comment'=>''])
如果你想设置text类型可以这样写

->addColumn('k', 'text', ['default' => '','comment'=>''])
如果你想设置longtext类型可以这样写

->addColumn('l', 'text', ['limit' => '4294967295','default' => '','comment'=>''])
设置唯一索引 unique

->addIndex('order_id', array('unique' => true))
执行

php think migrate:run

详细可以看 vendor\topthink\think-migration\phinx\src\Phinx\Db\Adapter\MysqlAdapter.php

另一种写法

$this->table('xx')
->addColumn(
Column::decimal('xx')->setPrecision('14')->setScale('2')
->setDefault(0.00)->setComment('')->setUnsigned()
)
->update();
————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/m0_47165403/article/details/123295193

标签:comment,false,longtext,default,thinkphp5,signed,tinyint,limit,addColumn
From: https://www.cnblogs.com/ygw1010/p/18409697

相关文章

  • ThinkPHP5 5.0.22/5.1.29 远程代码执行漏洞(5-rce)
    漏洞原理该漏洞存在两种利用方式控制器名未过滤导致rce该漏洞出现的原因在于ThinkPHP5框架底层对控制器名过滤不严,从而让攻击者可以通过url调用到ThinkPHP框架内部的敏感函数,进而导致getshell漏洞核心类Request远程代码执行filter[]为回调函数,get[]或route[]或server[R......
  • thinkphp5跨域问题
    首先我想到的是在配置文件中加跨域header("Access-Control-Allow-Origin:*");header('Access-Control-Allow-Methods:*');header('Access-Control-Allow-Headers:x-requested-with,content-type,token');header('Access-Control-Allow-Credentials',......
  • JDBC踩坑──`tinyint(1)`默认对应Java中的`Boolean`
    tinyint占1Byte,其取值范围为-128~127在JDBC中,既可以通过ResultSet的getBoolean()方法获取,也可以通过getObject()方法获取注意:下面两个结论不考虑设定tinyint的数字长度为0当设定tinyint的数字长度为1时,通过getObject()方法获取的返回值类型为Boolean,即tinyint(1)默认对应......
  • 无法更新 Python MySQL 中的tinyint
    我无法使用以下代码更新我的Tinyint值(valid_state):importmysql.connectormydb=mysql.connector.connect(host="localhost",user="mahdi",passwd="Abcd@1324",database="mycustomers")mycursor=mydb.cursor()sql="UPDATE`......
  • thinkphp5.1水平分表实践(一)
    在thinkphp5.1中可以使用partition方法进行水平分表功能,但其分表功能较简单,不适用某些特殊场景。其在TP中的实现逻辑如下:文件路径:thinkphp\library\think\db\Query.php  (555行)/***得到分表的的数据表名*@accesspublic*@paramarray$data操作的数......
  • uniapp+thinkphp5实现微信登录
    前言之前做了微信登录,所以总结一下微信授权登录并获取用户信息这个功能的开发流程。配置1.首先得在微信公众平台申请一下微信小程序账号并获取到小程序的AppID和AppSecrethttps://mp.weixin.qq.com/cgi-bin/loginpage?url=%2Fwxamp%2Fwacodepage%2Fgetcodepage%3Ftoken%3D4180......
  • thinkphp5遇到必须使用Db::raw方法而无法使用json格式传递Db对象
    今天使用Thinkphp5做异步任务传递where参数时遇到一个问题:有一段如下代码:$where['jst.supplier']=['exp',Db::raw('>0orjst.is_supplier=1')];在使用swoole做异步任务时需要把where参数传递给异步任务处理,因为无法传递数组和对象只能传递字符串,所以需要把where数组转换......
  • Thinkphp5.x全漏洞复现分析
    基础知识命名空间和子命名空间我们可以把namespace理解为一个单独的空间,事实上它也就是一个空间而已,子命名空间那就是空间里再划分几个小空间,举个例子:<?phpnamespaceanimal\cat;classcat{publicfunction__construct(){echo"meow"."\n";}}namespacean......
  • MySQL里 没有 boolean类型 怎么办?MySQL 里的 tinyint(1)
    之前我写的博客:https://www.cnblogs.com/del88/p/12538470.html由于之前的博客,没有使用markdown懒得重新排版了,重新写一篇;直接看AI给的答案吧:MySQL里没有boolean类型怎么办?在MySQL中,确实没有专门的boolean数据类型。不过,MySQL通常使用TINYINT(1)作为布尔值的替代。当使用T......
  • thinkphp5详细使用阿里云短信最新版
    1.我们下载官方完整包,PHP版本 https://help.aliyun.com/document_detail/55359.html?spm=5176.doc55451.6.580.3rgXTq 解压后得到目录2.将目录里的api_sdk复制出来到tp5根目录的extend下面文件夹复制过去后,我们最好更改一下名称,比如我们更改为alisms。 3.使用方法直接......