首页后端开发PHP怎么使用PHP数据库迁移工具“Phinx”

怎么使用PHP数据库迁移工具“Phinx”

时间2024-03-22 23:12:04发布访客分类PHP浏览341
导读:这篇文章主要给大家介绍“怎么使用PHP数据库迁移工具“Phinx””的相关知识,下文通过实际案例向大家展示操作过程,内容简单清晰,易于学习,有这方面学习需要的朋友可以参考,希望这篇“怎么使用PHP数据库迁移工具“Phinx””文章能对大家有...
这篇文章主要给大家介绍“怎么使用PHP数据库迁移工具“Phinx””的相关知识,下文通过实际案例向大家展示操作过程,内容简单清晰,易于学习,有这方面学习需要的朋友可以参考,希望这篇“怎么使用PHP数据库迁移工具“Phinx””文章能对大家有所帮助。

本篇文章给大家分享关于PHP处理中数据库迁移工具Phinx的相关知识,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
?php
require '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 UserSeeder
php vendor/bin/phinx seed:run -e product

生成文件

?php
use 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” 这里是记录变更记录的,这也是保障不会重复执行的一个措施,所以不用担心丢失或者重复操作执行命令。


以上就是关于怎么使用PHP数据库迁移工具“Phinx”的介绍啦,需要的朋友可以参考上述内容,希望对大家有帮助,欢迎关注网络,小编将为大家输出更多高质量的实用文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

PHP

若转载请注明出处: 怎么使用PHP数据库迁移工具“Phinx”
本文地址: https://pptw.com/jishu/650941.html
PHP是怎么读取CSV内容并存入一个数组中 详解Windows和Linux环境下怎么安装配置PHP

游客 回复需填写必要信息