欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

phalcon数据迁移到回滚实现

程序员文章站 2022-07-13 10:29:41
...
先安装phalcon/phalcon-devtools
有多种方法,
composer是简单的一种。

composer require "phalcon/devtools:~3.4" --dev

然后
.vendor/bin/phalcon





根据已有的 表建立迁移文件

.vendor/bin/phalcon migration generate

运行已有的迁移文件

.vendor/bin/phalcon migration run

回滚到某个版本

.vendor/bin/phalcon migration run --version=1.0.3

注意事项
migrations目录下,
所有的类名必须都不一样
为什么不使用phalcon本身的迁移类,是因为
它的列和表都不能加注释。
所以我决定使用sql原生的ddl语句。


增加列定义
* // Column definition
* $column = new Column(
*     "id",
*     [
*         "type"          => Column::TYPE_INTEGER,
*         "size"          => 10,
*         "unsigned"      => true,
*         "notNull"       => true,
*         "autoIncrement" => true,
*         "first"         => true,
*     ]
* );
*
* // Add column to existing table
* $connection->addColumn("robots", null, $column);

完整表定义
$str="CREATE TABLE `table123` (
            `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '你好主键',
            PRIMARY KEY (`id`)
          ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='你好表'";
          self::getConnection()->query($str);


删除列定义,删除表定义,删除索引定义
self::getConnection()->dropColumn('products2','invo','active2');