allenjb / migrationmanager
一个简单、不依赖框架、MySQL不可逆迁移库,接受预先配置的PDO连接
2.0.4
2018-08-01 08:22 UTC
Requires
- php: ~7.1
README
一个简单、不依赖框架、MySQL不可逆迁移库,接受预先配置的PDO连接(允许您预先设置所需的连接配置,如sql_mode或时区,以及您自己的错误处理)。
为什么?我看了其他迁移库,但它们都存在大量关于MySQL语言支持和回滚的问题,或者控制mysql连接(例如,时区、sql_mode)很麻烦,因为它们控制着连接的创建。虽然我可以尝试强制不使用这些有问题的功能,但如果它们一开始就不存在,那就简单多了。
版本
使用版本1以兼容PHP 5.6。版本2+需要PHP 7.1+
安装
通过Composer
$ composer require allenjb/migrationmanager
使用方法
$pdo = new \PDO(...); $pathToMigrations = "../db/migrations/"; $migrationsTable = 'migrations'; $manager = new AllenJB\MigrationManager($pdo, $pathToMigrations, $migrationsTable); // List migrations print_r ($manager->executedMigrations()); print_r ($manager->migrationsToExecute()); print_r ($manager->futureMigrations()); // Perform pending migrations $manager->executeMigrations(); // You MUST call when you've finished using the manager to release all locks $manager->unlock();
迁移文件
文件名必须遵循YYYYMMDD_HHmm_ClassName.php的格式
时间采用24小时制。
类名必须是唯一的。
如果日期大于今天(不考虑时间),则迁移将不会在那天执行。这允许您在未来安排迁移(例如,您正在删除一个字段,但希望将其保留在数据库中一段时间以防止数据丢失/代码回滚)。
<?php declare(strict_types = 1); // example filename: 20170330_1100_Initialize.php use AllenJB\MigrationManager\AbstractMigration; class Initialize extends AbstractMigration { public function up() : void { // Execute your changes here, using $this->db to access the PDO connection } }
许可证
MIT许可证(MIT)。请参阅许可证文件获取更多信息。