首页 > 编程知识 正文

数据转换器从入门到精通,阿里数据迁移工具

时间:2023-05-04 03:08:39 阅读:47422 作者:1464

数据库迁移就像数据库的版本控制,团队可以轻松修改和共享APP应用程序的数据库结构。 PHP Laravel框架中的Artisan命令行工具提供了与数据库迁移相关的命令。 由于项目是基于PHP Yaf框架开发的,因此在此主要记录项目中使用的另一个数据库迁移工具- Phinx。

Phinx主要具有以下特性: 可以在多个数据库之间移植。

独立于PHP框架。

简单的安装过程。

简单的命令行操作。

与其他各种PHP工具(Phing、PHPUnit )和Web框架集成。 请注意,使用Phinx rollback命令回滚指定版本时,rollback将对指定版本及更高版本的所有版本执行降级迁移。 (在生产环境中,建议不要写或注释down函数的内容,以免操作错误破坏生产环境中的数据库表或数据。)

安装和初始化

按如下所示使用Composer进行安装。 PHP composer.pharrequirerobmorgan/phinx

创建迁移目录db/migrations (验证目录是否具有读写权限) mkdir -p db/migrations

CD数据库/迁移

初始化Phinx并完成phinx.yml的配置。 vendor/jsdy/phinx init

创建迁移

通过运行以下命令创建迁移文件: PHP vendor/jsdy/phinxcreatemynewmigration

生成文件名格式为yyymmddhhmmss _ my _ new _ migration.PHP的迁移文件。 初始化文件的内容是什么? php

usephinxmigrationabstract migration;

classmynewmigrationextendsabstractmigration

{

//*

*变更方法。

*

* writeyourreversiblemigrationsusingthismethod。

*

* moreinformationonwritingmigrationsisavailablehere :

* http://docs.phinx.org/en/latest/migrations.html # the-abstract migration-class

*

* thefollowingcommandscanbeusedinthismethodandphinxwill

* automaticallyreversethemwhenrollingback :

*

*创建表

*重命名表

*添加列

*重命名列

* addIndex

*添加福reign密钥

*

* remembertocall ' create (or ' update ) (and NOT 'save ) )网络工作

*使用表类。

*/

公共函数更改(

{

}

}

变更函数

Phinx 0.2.0支持称为无损迁移的新功能。 只要在change函数中编写上方向转换的逻辑,Phinx就会在执行下方向转换时自动处理。 比如? php

usephinxmigrationabstract migration;

classcreateuserloginstableextendsabstractmigration

{

//*

*变更方法。

*

* moreinformationonthismethodisavailablehere :

* http://docs.phinx.org/en/latest/migrations.html # the-change-method

*

* uncommentthismethodifyouwouldliketouseit。

*/

公共函数更改(

{

//create the table

$ table=$ this-table (' user _ logins );

$table-addcolumn('user_id ',' integer ' ) )

-addcolumn('created ',' datetime ' ) )。

-create (;

}

//*

*迁移升级。

*/

公共函数up ()

{

}

//*

*迁移降级。

*/

公共函数下(

{

}

}

执行备份迁移时,Phinx会创建user_logins表,并在执行宕机迁移(回滚)时自动删除user_logins表。

请注意,如果change函数存在,up、down函数将被忽略。

Phinx只支持名为createTable的函数的无损迁移

重命名表

添加列

重命名列

addIndex

addForeignKey

如果函数不支持无损迁移,Phinx将在执行降级迁移(回滚)时抛出IrreversibleMigrationException异常。

up函数

运行php vendor/jsdy/Phinx migrate命令时,如果phinx检测到迁移文件尚未运行,它将自动运行迁移文件的up ()函数。 此函数主要描述对数据库进行哪些更改。

下函数

运行php vendor/jsdy/Phinx rollback命令时,phinx会在检测到迁移文件已执行时自动运行迁移文件的down ()函数。 此函数主要描述您希望在数据库中进行哪些恢复,以应对down函数的更改。

执行查询

可以使用execute ()、query )函数执行本机SQL语句。 其中execute ()函数返回受影响的行数,而query函数返回PDOStatement对象的结果集。 在项目中,如果没有特定的需要,可以用这种方法直接编写up、down函数。 因为Phinx只支持所有数据库共有的列类型,所以必须为特定于MySQL的列类型(如枚举、集、blob和json )部署MysqlAdapter类。

参考资料

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。