vakata/ migrations
PHP数据库迁移
1.1.1
2024-02-19 16:18 UTC
Requires
- php: >=8.0
- vakata/database: ^4.0|^5.0
README
PHP数据库迁移。
安装
通过Composer
$ composer require vakata/migrations
使用方法
为所有迁移准备一个目录。一个迁移包含一个文件夹,里面包含3个文件
- schema.sql - 需要的数据库模式修改
- data.sql - 可选的插入/更新/删除数据
- uninstall.sql - 可选的完全撤销此迁移的语句
示例结构
|-migrations
|- base
| |- _core
| |- 000
| |- schema.sql
| |- data.sql
| |- uninstall.sql
|- app
|- feature1
| |- 000
| | |- schema.sql
| | |- data.sql
| | |- uninstall.sql
| |- 001
| |- schema.sql
|- feature2
|- 000
|- schema.sql
|- uninstall.sql
创建必要的表,例如
-- postgre CREATE TABLE IF NOT EXISTS migrations ( migration SERIAL NOT NULL, package varchar(255) NOT NULL, installed timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP , removed timestamp DEFAULT NULL , PRIMARY KEY (migration) ); -- mysql CREATE TABLE IF NOT EXISTS migrations ( migration bigint(20) unsigned NOT NULL AUTO_INCREMENT, package varchar(255) COLLATE utf8mb4_general_ci NOT NULL, installed datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, removed datetime DEFAULT NULL, PRIMARY KEY (migration) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ;
$migrations = new \vakata\migrations\Migrations( new \vakata\database\DB('<connection-string-here>'), 'path/to/migrations/folder', [ 'base/', 'app/feature2', 'app' ] // optional feature flags (also used for sorting) null // optional sort callback ); // this will install the packages in this order: // base/_core/000, app/feature2/000, app/feature1/000, app/feature1/000 $migrations->up();
贡献
有关详细信息,请参阅CONTRIBUTING。
安全
如果您发现任何与安全相关的问题,请发送电子邮件至github@vakata.com,而不是使用问题跟踪器。
鸣谢
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。