phinx数据库脚本迁移工具

简介: phinx数据库脚本迁移工具 Phinx 可以使用 Composer 进行安装,Composer是一个PHP依赖管理工具。更多信息请访问 Composer 官网。 Phinx 至少需要PHP 5.

phinx数据库脚本迁移工具

Phinx 可以使用 Composer 进行安装,Composer是一个PHP依赖管理工具。更多信息请访问 Composer 官网。

Phinx 至少需要PHP 5.4 或更新的版本

第一步:安装

composer require robmorgan/phinx

第二步:初始化

安装后,Phinx 现在可以在你的项目中执行初始化

php vendor/robmorgan/phinx/bin/phinx init

第三步:配置文件

phinx.yml

第四步:创建迁移 文件名驼峰命名

php vendor/robmorgan/phinx/bin/phinx create MyNewMigration

这里写图片描述

这将创建一个新的迁移脚本,格式是 YYYYMMDDHHMMSS_my_new_migration.php ,前14个字符是当前的timestamp,精确到秒。
这里写图片描述
如果你指定了多个脚本路径,将会提示你选择哪一个。

Phinx 自动创建的迁移脚本框架有一个方法:

<?php

use Phinx\Migration\AbstractMigration;

class MyNewMigration extends AbstractMigration
{
    /**
     * Change Method.
     *
     * Write your reversible migrations using this method.
     *
     * More information on writing migrations is available here:
     * http://docs.phinx.org/en/latest/migrations.html#the-abstractmigration-class
     *
     * The following commands can be used in this method and Phinx will
     * automatically reverse them when rolling back:
     *
     *    createTable
     *    renameTable
     *    addColumn
     *    renameColumn
     *    addIndex
     *    addForeignKey
     *
     * Remember to call "create()" or "update()" and NOT "save()" when working
     * with the Table class.
     */
    public function change()
    {
       //添加qaSource字段(qa来源)
        $wbrqa = $this->table("wbrqa");
        if (!$wbrqa->hasColumn('qaSource')) {
            $wbrqa->addColumn("qaSource", "string", ['limit' => 30, 'null' => true, 'default' => '', 'comment' => 'qa来源'])->update();
        }
    }
        //更改列属性[wbrqa: qid、aid更改字段属性为varchar 用户于存储mongoDb: _id、parentId]
        $wbrqa = $this->table("wbrqa");
        $wbrqa->changeColumn('qId', 'string', ['limit' => 255, 'null' => true])->save();
        $wbrqa->changeColumn('aId', 'string', ['limit' => 255, 'null' => true])->save();
        $wbrqa->changeColumn('qUserId', 'string', ['limit' => 255, 'null' => true])->save();

       $wbrqa = $this->table("wbrqa");
        if (!$wbrqa->hasColumn('isDeleted')) {
            $wbrqa->addColumn("isDeleted", "integer", ['limit' => 2, 'null' => true,                          'default' => '0', 'comment' => '是否删除'])->update();
        }
        //建立索引
        $wbrqa->hasIndex(['isDeleted', 'index_wbrqa_isDeleted']);
}

第五步:执行脚本

php vendor/robmorgan/phinx/bin/phinx migrate -e localhost

注意点:


> php vendor/robmorgan/phinx/bin/phinx migrate -e *localhost*

此处的localhost为你本地的环境,也可以是线上环境,但是在使用之前,必须配好环境。
环境配置在下一文章详细说明。
链接地址:https://blog.csdn.net/weixin_39690767/article/details/80267801

原文地址https://blog.csdn.net/weixin_39690767/article/details/80267521

相关文章
|
4月前
|
数据库 数据安全/隐私保护 Python
写一个定时备份数据库的脚本,且只保留最近3天
写一个定时备份数据库的脚本,且只保留最近3天
70 3
|
2月前
|
关系型数据库 MySQL 数据库
OceanBase数据库常见问题之脚本执行失败如何解决
OceanBase 是一款由阿里巴巴集团研发的企业级分布式关系型数据库,它具有高可用、高性能、可水平扩展等特点。以下是OceanBase 数据库使用过程中可能遇到的一些常见问题及其解答的汇总,以帮助用户更好地理解和使用这款数据库产品。
|
6天前
|
弹性计算 NoSQL Shell
一键安装 MongoDB 数据库脚本
【4月更文挑战第29天】
12 4
|
2月前
|
SQL 编解码 数据库
MyKtv点歌系统前台主要功能实现,内附数据库脚本,可以直接运行
MyKtv点歌系统前台主要功能实现,内附数据库脚本,可以直接运行
15 1
MyKtv点歌系统前台主要功能实现,内附数据库脚本,可以直接运行
|
2月前
|
Java 关系型数据库 MySQL
Java调用shell脚本实现数据库备份功能
本篇文章主要介绍怎样使用Java程序,执行服务器上的数据库备份Shell脚本进行MySQL数据库的备份功能。
|
4月前
|
关系型数据库 MySQL Shell
linux shell脚本实现自动备份Mysql数据库脚本
linux shell脚本实现自动备份Mysql数据库脚本
183 3
|
4月前
|
Java 数据库 Android开发
基于JavaWeb企业电子商城(源码+数据库脚本+项目讲解)
基于JavaWeb企业电子商城(源码+数据库脚本+项目讲解)
|
4月前
|
Java 数据库 开发工具
java Swing学生成绩管理系统【项目源码+数据库脚本】
java Swing学生成绩管理系统【项目源码+数据库脚本】
|
4月前
|
前端开发 Java 数据管理
javaWeb基于SSM框架开发的社区医疗数据管理系统【项目源码+数据库脚本+报告】
javaWeb基于SSM框架开发的社区医疗数据管理系统【项目源码+数据库脚本+报告】
|
4月前
|
Java 关系型数据库 MySQL
基于java Swing开发的学生成绩管理系统【项目源码+数据库脚本】
基于java Swing开发的学生成绩管理系统【项目源码+数据库脚本】