hypocenter/phinx-migrations-generator

Phinx 的迁移生成器

5.5.0 2021-04-13 09:47 UTC

README

通过比较您的当前数据库与您的模式信息来生成 Phinx 迁移。

Latest Version on Packagist Software License Build Status Code Coverage Quality Score Total Downloads

要求

  • PHP 7.2+ 或 8.0+

特性

  • 框架独立
  • 数据库管理系统:MySQL 5.7+、MySQL 8、MariaDB(部分支持)
  • 初始模式
  • 模式差异
  • 数据库:字符集,校对
  • 表:创建、更新、删除、引擎、注释、字符集、校对
  • 列:创建、更新、删除
  • 索引:创建、删除
  • 外键:创建、删除、约束名称

安装

通过 Composer

$ composer require odan/phinx-migrations-generator --dev

用法

生成迁移

第一次运行会生成初始模式和迁移类。文件 schema.php 包含以前的数据库模式,并与当前模式进行比较。基于差异,生成一个 Phinx 迁移类。

$ vendor/bin/phinx-migrations generate

当再次执行 generate 命令时,仅生成与最后一个模式之间的差异。

参数

运行迁移

Phinx migrate 命令 运行所有可用的迁移。

$ vendor/bin/phinx migrate

配置

phinx-migrations-generator 使用 phinx 的配置。

迁移配置

示例配置

文件名:phinx.php(位于项目根目录中)

<?php

// Framework bootstrap code here
require_once __DIR__ . '/config/bootstrap.php';

// Get PDO object
$pdo = new PDO(
    'mysql:host=127.0.0.1;dbname=test;charset=utf8', 'root', '',
    array(
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_PERSISTENT => false,
        PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8 COLLATE utf8_unicode_ci',
    )
);

// Get migration path for phinx classes
$migrationPath = __DIR__ . '/resources/migrations';

return [
    'paths' => [
        'migrations' => $migrationPath,
    ],
    'foreign_keys' => false,
    'default_migration_prefix' => 'db_change_',
    'mark_generated_migration' => true,
    'migration_base_class' => \Phinx\Migration\AbstractMigration::class,
    'environments' => [
        'default_environment' => 'local',
        'local' => [
            // Database name
            'name' => $pdo->query('select database()')->fetchColumn(),
            'connection' => $pdo,
        ]
    ]
];

测试

$ composer test

贡献

请参阅CONTRIBUTINGCODE_OF_CONDUCT 以获取详细信息。

许可证

MIT 许可证(MIT)。有关更多信息,请参阅 许可证文件