• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧
您的位置:首页 > CMS教程 >建站教程 > 教你使用PHP数据库迁移工具“Phinx”

教你使用PHP数据库迁移工具“Phinx”

作者:站长图库 字体:[增加 减小] 来源:互联网 时间:2022-04-29

站长图库向大家介绍了PHP数据库迁移工具,数据库迁移工具Phinx等相关知识,希望对您有所帮助

本篇文章给大家分享关于PHP处理中数据库迁移工具Phinx的相关知识,phinx特别适合在开发、测试、线上数据库同步字段信息、数据信息、生成和同步测试数据等,希望对大家有帮助。


教你使用PHP数据库迁移工具“Phinx”


文档地址:https://tsy12321.gitbooks.io/phinx-doc/content


1.安装

composer require nhzex/think-phinx


2.执行

php vendor/bin/phinx

直接运行 php vendor/bin/phinx init 可生成配置文件

另外一种方法是直接使用php文件做配置文件

直接运行 php vendor/bin/phinx init 可生成配置文件

另外一种方法是直接使用php文件做配置文件


3.使用phinx.php进行配置

<?php$config = array(    'DB_HOST' => 'localhost',    'DB_NAME' => 'root',    'DB_USER' => 'root',    'DB_PWD' => '',);$settings = $config;#phinx.php<?phprequire 'db_config.php';return array(    "paths" => array(        "migrations"    => "db/migrations",        "seeds"         => "db/seeds"    ),    "environments"   => array(        "defaut_migration_table"    => "phinxlog",        "default_database"          => "lleg",        "default_environment"       => "development"        "production"   => array(            "adapter"   => "mysql",            "host"      => $settings["DB_HOST"],            "name"      => $settings["DB_NAME"],            "user"      => $settings["DB_USER"],            "pass"      => $settings["DB_PWD"],            "port"      => 3306,            "charset"   => "utf8"        ),        "development"   => array(            "adapter"   => "mysql",            "host"      => $settings["DB_HOST"],            "name"      => $settings["DB_NAME"],            "user"      => $settings["DB_USER"],            "pass"      => $settings["DB_PWD"],            "port"      => 3306,            "charset"   => "utf8"        )    ));


4.执行 php vendor/bin/phinx status 查看连接状态


5.执行 php vendor/bin/phinx create migration


6.现在生成了created /db/migrations/20180310020523_migration.php

编辑这个文件,添加数据库创建内容.

public function change() {    $user = $this->table('user');    $user->addColumn('open_id', 'string', ['limit'=>64]);    $user->addColumn('register_time', 'timestamp', ['default' => 'CURRENT_TIMESTAMP']);    $user->addColumn('favorite_music', 'integer', ['default'=> 0, 'comment'=>'喜欢的音乐']);    $user->addColumn('favorite_vedio', 'integer', ['default'=> 0, 'comment'=>'喜欢的视频数']);    $user->addColumn('favorite_article', 'integer', ['default'=> 0, 'comment'=>'喜欢的文章数']);    $user->addColumn('baby_birthday', 'date', ['null'=>true, 'comment'=>'宝宝生日']);    $user->addColumn('baby_sex', 'boolean', ['null'=>true, 'comment'=>'宝宝性别']);    $user->addColumn('last_login', 'datetime', ['null'=>true, 'comment'=>'最后登陆日期']);    $user->save();}


7.默认会添加一个自增id,作为主键

执行 

php vendor/bin/phinx migrate


8.初始化数据

执行 

php vendor/bin/phinx seed:create CategorySeeder

系统自动创建 created ./db/seeds/CategorySeeder.php


9.修改 CategorySeeder.php

执行 php vendor/bin/phinx seed:run 将会进行所有Seed


10.如果想运行指定的Seed需要用- s参数指定

php vendor/bin/phinx seed:run -s CategorySeeder


11.更新表结构

当需要更新表结构的时候,需要再创建一个migrate

执行

php vendor/bin/phinx create ChangeArtist

再将需要更新的内容写到change函数

public function change() {    $this->execute('alter table resource drop column artist ;');    $resource = $this->table('resource');    $resource->addColumn('artist', 'string', ['limit'=>128, 'default'=>'']);    $resource->update();}

最后执行php vendor/bin/phinx migrate

之前的已经执行过的migrate不会执行, 只会执行更新的部分。


12.回滚

php vendor/bin/phinx rollback


13.数据填充

php vendor/bin/phinx seed:create UserSeederphp vendor/bin/phinx seed:run -e product

生成文件

<?phpuse Phinx\Seed\AbstractSeed;class UserSeeder extends AbstractSeed {    /**     * 插入数据     */    public function run() {        $data = array(          array(              'id'    => 1,          ),          array(              'id'    => 2,          )        );        $posts = $this->table('users');        $posts->insert($data)->save();    }}

phinx特别适合在开发,测试,线上数据库同步字段信息,数据信息,生成和同步测试数据等,所以特别适合在团队开发流程中使用,尤其是对于一个新项目,只要在项目的开始就一直坚持使用phinx独立部署,那么每次变更数据库表信息团队成员都可以通过git或者svn的方式同步代码然后执行上面提到的执行命令来同步库表信息,以此避免传统开发时不同开发环境同步库表信息的繁琐和失误的情况。

在 phinx.php 有一个配置项 "default_migration_table" => "phinxlog" 这里是记录变更记录的,这也是保障不会重复执行的一个措施,所以不用担心丢失或者重复操作执行命令。


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 教你使用PHP数据库迁移工具“Phinx”

相关文章

  • 2022-04-29解决sqlServer使用ROW_NUMBER时不排序的方法
  • 2022-04-29Photoshop鼠绘质感霸天虎机器人界面
  • 2022-04-29Thinkphp学习之路由定义 伪静态规则(总结分享)
  • 2022-04-29ThinkPHP5通过ajax插入图片并实时显示(完整代码)
  • 2022-04-29Photoshop制作艺术玻璃质感的立体字教程
  • 2022-04-29完美解决更新和发布文章出现Unknown column 'weight
  • 2022-04-29不得不注意的网站描述优化问题
  • 2022-04-29PhotoShop自定义图案制作背景纹理教程
  • 2022-04-29vue-router两种模式有什么区别
  • 2022-04-29PHP上传目录禁止执行php文件实例讲解

文章分类

  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧

最近更新的内容

    • PS设计制作蓝色梦幻泡泡背景的详细教程
    • Photoshop简单方法制作时尚的艺术字教程
    • PHP中fopen()函数的使用(附代码示例)
    • 如何给WordPress主题评论框加上阿鲁表情
    • 浅析AntdV Upload组件customRequest怎么自定义上传方法
    • AI绘制时尚少女插画
    • Postman是如何实现接口的自动化测试
    • PHP如何重定向?浅谈跳转页面的3种方法
    • Photoshop设计金属立体效果的APP图标
    • WordPress教程:WordPress博客添加自定义鼠标样式

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有