tworzenieweb/sql-provisioner

一个简单的CLI工具,用于在将SQL文件插入数据库之前验证它们。

v0.6.0 2019-03-11 11:06 UTC

This package is auto-updated.

Last update: 2024-09-12 04:43:59 UTC


README

Build Status Scrutinizer Code Quality

SensioLabsInsight

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演示的使用方法

asciicast

版本控制

我们使用SemVer进行版本控制。有关可用的版本,请参阅此存储库上的标签

作者

许可证

本项目采用MIT许可证 - 有关详细信息,请参阅LICENSE.md文件。