在php中运行应用程序迁移的模式
我正在为一个应用程序创建一个迁移系统。迁移通常只与数据库相关,它有两个组件:模式迁移和数据迁移。我的文件结构如下: 我要做的是检查用户安装的版本,然后启动从该版本到最新版本的迁移过程。过程是,我执行一个sql脚本,然后查找要执行的相应php文件(如果存在)。我的问题是,如何构造php文件以避免运行重复的函数或重复的函数。我想要php迁移的标准命名;大概是这样的:在php中运行应用程序迁移的模式,php,design-patterns,migration,database-migration,Php,Design Patterns,Migration,Database Migration,我正在为一个应用程序创建一个迁移系统。迁移通常只与数据库相关,它有两个组件:模式迁移和数据迁移。我的文件结构如下: 我要做的是检查用户安装的版本,然后启动从该版本到最新版本的迁移过程。过程是,我执行一个sql脚本,然后查找要执行的相应php文件(如果存在)。我的问题是,如何构造php文件以避免运行重复的函数或重复的函数。我想要php迁移的标准命名;大概是这样的: Class Migrate { public function up() { // upgrade the
Class Migrate {
public function up() {
// upgrade the data
}
public function down() {
// downgrade the data
}
}
我遇到的问题是,这些php文件中的每一个都有这个类和函数,当我从一个循环中运行所有这些时,php会抱怨重新定义类
我如何解决这个问题?有没有更好的方法,或者通用的方法?为什么不存储一堆差异?只需按顺序应用所需的差异,就可以修补8.0.0->8.0.1->8.0.2->8.1.0,而不必执行任何代码?我该怎么做?此外,php文件的功能还涉及数据库数据操作和文件操作(我认为这不能用diff实现)