tworzenieweb / sql-provisioner
一个简单的CLI工具,用于在将SQL文件插入数据库之前验证它们。
Requires
- php: >=7.0
- ext-pdo: *
- cweiske/php-sqllint: ^0.1.3
- jdorn/sql-formatter: ^1.2
- swiftmailer/swiftmailer: ^6.0
- symfony/config: ^3.2
- symfony/console: ^3.2
- symfony/dependency-injection: ^3.2
- symfony/expression-language: ^3.4
- symfony/filesystem: ^3.2
- symfony/finder: ^3.2
- symfony/process: ^3.2
- twig/twig: ^2.4
- vlucas/phpdotenv: ^2.4
Requires (Dev)
- bossa/phpspec2-expect: ^3.0
- leanphp/phpspec-code-coverage: ^4.2
- leaphub/phpcs-symfony2-standard: ~2.0.0
- memio/spec-gen: ^0.8
- phpspec/phpspec: ^4.0
README
SQL Provisioner
用于数据库更改部署的简单CLI工具。它允许在执行前审查每个dbdeploy文件。
入门
以下说明将帮助您在本地机器上运行项目副本以进行开发和测试。有关如何将项目部署到实时系统的说明,请参阅部署。
先决条件
要使用此库,您需要安装composer,并有一个用于存储已执行的数据库部署的表。最后,您需要提供包含连接信息和用于检查的表和列名的.env文件。
DATABASE_USER=[user]
DATABASE_PASSWORD=[password]
DATABASE_HOST=[host]
DATABASE_PORT=[port]
DATABASE_NAME=[database]
PROVISIONING_TABLE=changelog_database_deployments
PROVISIONING_TABLE_CANDIDATE_NUMBER_COLUMN=deploy_script_number
安装
它的安装方式与其他composer项目相同
composer require tworzenieweb/sql-provisioner
然后您应该能够在vendor/bin/sql-provisioner中运行命令
vendor/bin/sql-provisioner /location/to/your/sql/files
使用
vendor/bin/sql-provisioner [path-to-folder]命令将扫描[path-to-folder]目录的内容。
脚本将寻找包含以下格式的连接信息的.env文件
DATABASE_USER=[user]
DATABASE_PASSWORD=[password]
DATABASE_HOST=[host]
DATABASE_PORT=[port]
DATABASE_NAME=[database]
PROVISIONING_TABLE=changelog_database_deployments
PROVISIONING_TABLE_CANDIDATE_NUMBER_COLUMN=deploy_script_number
如果您想创建初始的.env,请使用--init
vendor/bin/sql-provisioner --init [path-to-folder]
下一步是搜索SQL文件并尝试按数字顺序排队。文件名的第一个n个数字将被视为候选数字。然后,这将用于检查数据库中是否已部署某个文件(PROVISIONING_TABLE_CANDIDATE_NUMBER_COLUMN)。在插入之前,它将打印文件的格式化输出和内部语法检查的结果。然后您可以选择跳过或执行每个。
如果您想跳过已部署的候选者,请使用--skip-provisioned。如果您想跳过候选者的语法检查(为了提高速度),请使用--skip-syntax-check
演示
这是cinerama演示的使用方法
版本控制
我们使用SemVer进行版本控制。有关可用的版本,请参阅此存储库上的标签。
作者
- Luke Adamczewski - 初始工作 - tworzenieweb
许可证
本项目采用MIT许可证 - 有关详细信息,请参阅LICENSE.md文件。