Phinx数据库迁移脚本的使用

原文: https://blog.csdn.net/xyz_dream/article/details/79105183





Phinx数据库迁移脚本的使用

要了解和要解决的问题


1.什么是phinx?

2.为什么使用phinx?

3.phinx的常见应用实例


1/2. 什么是phinx?为什么使用phinx?

1. Phinx使你的php 应用进行数据迁移的过程变得异常轻松,在五分钟之内你就可以安装好Phinx 并进行数据迁移。Phinx允许开发者一种清晰、简洁的方式来修改和操作数据库,依托Phinx提供了一个强大的API,你无需手工编写SQL,而是使用PHP代码来创建代码迁移。

简单说,Phinx是基于PHP脚本帮助我们实现对数据库表结构,数据的增删改操作。那有人会问,我自己弄一个MySQL的可视化界面自己手写也是可以的,为什么还会存在这个东西?难道在脱裤子放屁?其实不然。

2. 对于个人小Demo自然用不上这个东西。但是对于真实企业级开发是非常必要的,那就是对每一次表结构的更改都要做相应的记录,并且有利于我们去管理数据库。每一次Phinx的执行都会为我们去保存记录创表的log,对于之后的维护是非常有利的。


3.phinx的常见应用实例

一. 安装与下载


官方网站: http://docs.phinx.org/en/stable/install.html


看不懂英文的选择一下翻译,大致能看到。 翻译不到位的,有点英文基础的,看原文也是能看懂的。 本文是通过composer安装的,需要了解composer的简单实用,请看我的上一篇博文composer的实用部分

二. 简单创建Test表的流程


1.新建一个目录 是这样的结构 test/db/migrations/ 确保此目录有足够的权限


2.执行初始化phinx到test。命令: vendor/bin/phinx init -c test test是之前已经建立好的目录


3.此时test目录下新增一个phinx.yml数据库配置文件。填写里面的配置信息,都很简单,host,pass,dbname,username.确保信息正确


4.开始初始化一个创建Test表的骨架文件 此文件会自动放到test/db/migrations/下。文件命名呈现规则”格林威治”_create_test_table.php


创建命令: vendor/bin/phinx create CreateTestTable


5.编辑此文件内容如下:



<?php

use Phinx\Migration\AbstractMigration;

class CreateTestTable extends AbstractMigration

{

public function change()

{

$table= $this->table(“test”)

->addColumn(“name”,’string’,[‘limit’=>200,’default’=>””,’null’=>false,’comment’=>’new column’])

->addTimestamps()->create();

}

}



编辑此内容如上。


6.完成迁移脚本编辑。执行迁移脚本。 命令:vendor/bin/phinx migrate -e development

执行成功,查看数据库是否新增test表。


4.常见方法和详解


  1. table(“test”) //指明要操作的表名称

  2. addColumn(“字段名”,[“limit”=>10,’default’=>”“,’null’=>true,”comment”=>’add column’]) //指明字段名 后面是字段属性配置

  3. addTimestamp() // 创建表默认帮你加上 created_at updated_at 字段

  4. create() //确认执行

  5. change() //默认phinx会执行此方法 执行迁移

  6. up() //向上迁移 当前最新版本

  7. down() //向下迁移 回滚

    等等。常见的使用方式和方法如上所示,具体详细使用请参考Phinx官方网站。