`
xieye
  • 浏览: 836287 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

php迁移工具phinx使用

    博客分类:
  • PHP
阅读更多
咱不用laravel那个,保持composer各组件独立性。
官网:https://phinx.org/

composer安装
"robmorgan/phinx":"0.8.1" 


我的项目叫t3,下面有一个public,这个public是web根目录。
现在,我在t3下建立一个db目录,与public同级。与vendor同级。
db下再建两个目录,migrations和seeds。
cmd下。
进入t3目录
执行命令。
vendor\bin\phinx.bat init


此时有提示,发现t3目录下多了phinx.xml文件。这就是配置文件

立刻修改这个文件,注意他的default_database字段,修改那里的内容即可(默认有3个环境)
例如:
包括主机名,用户,密码,库名,文字编码等。


现在开始生成文件,假设我想建表
test2,字段name,pass,create_time。

执行命令
vendor\bin\phinx.bat create Test2


这时发现migrations下多了一个文件

修改文件内容
<?php

use Phinx\Migration\AbstractMigration;

use Phinx\Db\Adapter\MysqlAdapter;

class Test2 extends AbstractMigration
{
    
    public function change()
    {
        $table = $this->table('test2');
        $table
          ->addColumn("user",'string' , [
              'limit' => 50,
              'null' => false,
              'default' => '',
              'comment' => '用户名称',
          ])
          ->addColumn('create_time', 'integer',[
              'null' => false,
              'default' => 0,
              'comment' =>'创建时间' ,
          ])
          ->addColumn('is_del', 'integer',array(
              'limit' => MysqlAdapter::INT_TINY,
              'null' => false,
              'default' =>0,
              'comment' =>'是否删除' ,
              
          ))
          ->addIndex(['user']) //给user字段加索引。
          ->create();

    }
}


现在执行命令

vendor\bin\phinx.bat migrate -e development
或者使用默认环境,参见配置文件
vendor\bin\phinx.bat migrate 


也可以再执行一遍,不会有问题。

查库,发现表已建好。

用命令可查看状态,(哪些脚本被执行了。)
vendor\bin\phinx.bat status

现在我想回滚了。(默认只回滚一个文件)
vendor\bin\phinx.bat rollback

发现表删除了。好神奇!!

最后,用命令建立迁移任务文件时,类名不能重名,
不能再执行
vendor\bin\phinx.bat create Test2,因为该类已存在。

还有,回滚的函数是依据这几个函数来的
     *    createTable
     *    renameTable
     *    addColumn
     *    renameColumn
     *    addIndex
     *    addForeignKey


还有,表回滚了,里面的数据也丢失了,切记。
分享到:
评论

相关推荐

    Phinx一个数据库迁移管理库

    Phinx是一个轻量级、跨平台的数据库迁移工具,主要用于帮助PHP开发者在项目中管理和执行数据库迁移。数据库迁移是版本控制系统的一种应用,它允许开发者在不同的开发阶段对数据库结构进行修改,而不会丢失数据或破坏...

    Laravel开发-phinx-laravel-style

    Phinx 是一个流行的 PHP 数据库迁移工具,它允许开发者轻松地在项目中管理数据库结构的变化。Phinx 提供了一个简单的命令行界面,用于创建、上移和下移迁移,确保在开发过程中数据库的同步。然而,Phinx 的默认风格...

    Deployer一个用PHP编写的部署工具内置支持各种流行的框架

    对于数据库的迁移,Deployer可以配合Phinx或Doctrine Migrations等库来实现。只需在配置文件中添加相应的命令,即可在部署过程中自动执行迁移。 此外,Deployer支持持续集成(CI/CD)工具,如Jenkins、Travis CI等...

    griffin:Griffin是一个面向图形PHP迁移框架

    与传统的PHP迁移工具如`Laravel Migrations`或`Phinx`相比,`Griffin`的图形界面是其独特之处,它降低了学习曲线,尤其对那些不熟悉命令行工具的新手开发者而言更加友好。然而,这也意味着`Griffin`可能不适合那些...

    cur-alura-composer-dependencias-autoload-publicacao-php:Curso Alura PHP作曲家

    9. **数据库迁移**:处理数据库的迁移和同步,例如使用Phinx或Laravel的Migrations。 10. **安全实践**:学习关于密码存储、防止SQL注入和跨站脚本攻击(XSS)的最佳实践。 通过这个课程,无论你是PHP初学者还是有...

    Laravel开发-db-dump

    考虑到数据库结构的变迁,使用如`phinx`或`migrations`来管理数据库版本也是很重要的。Laravel的Migrations系统允许你以版本控制的方式管理数据库结构的变更。 8. **安全性** 记住,备份文件应存储在安全的地方,...

    bee-jee-test

    Phinx是一个开源的数据库迁移工具,它允许开发者在应用的不同版本之间轻松地管理和同步数据库结构。在这个例子中,“phinx migrate”会运行存储在项目中的迁移脚本,将数据库结构更新到与代码相匹配的状态。你需要...

    nofw:无框架的应用程序框架

    与典型框架相比,最大的不同是完全不使用NodeJS完全支持前端构建工具链,因此您可以确保您的构建始终可以正常工作。 请参阅下面的更多信息。 它开箱即用地包含以下内容(功能的详细说明在本文档中较低): 通过-...

    phpStickyBoard:一个简单,快速,用户友好和安全的论坛,例如Baidu.com tieba。-开源

    - 数据库迁移工具(如Phinx)可能用于版本控制和数据库结构的迁移。 - 使用Composer管理依赖,确保所有必要的库和组件都能正确安装和更新。 - 部署时需考虑服务器环境,如PHP版本、Web服务器(Apache、Nginx等)、...

    slim-starter-kit:超薄入门套件

    Documentación en progreso特征验证方式电邮Laravel混合移居控制器使用口才的实体或模型使用分支模板引擎的视图发送电子邮件的基本模板友善网址通过作曲家轻松安装基本认证模块中间件CSRF支持届会即时消息使用的...

Global site tag (gtag.js) - Google Analytics