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.常见方法和详解
- table(“test”) //指明要操作的表名称
- addColumn(“字段名”,[“limit”=>10,’default’=>”“,’null’=>true,”comment”=>’add column’]) //指明字段名 后面是字段属性配置
- addTimestamp() // 创建表默认帮你加上 created_at updated_at 字段
- create() //确认执行
- change() //默认phinx会执行此方法 执行迁移
- up() //向上迁移 当前最新版本
- down() //向下迁移 回滚
等等。常见的使用方式和方法如上所示,具体详细使用请参考Phinx官方网站。