shadiakiki1986 / db-diff
该软件包最新版本(0.0.2.1)没有提供许可证信息。
0.0.2.1
2017-01-19 09:35 UTC
Requires
- ext-pdo: *
- ext-pdo_odbc: *
- ext-yaml: *
- shadiakiki1986/git-rest-api-client: *
- symfony/console: ^3.2
- twig/twig: ^2.0
Requires (Dev)
- jakub-onderka/php-parallel-lint: ^0.9.2
- php-mock/php-mock: ^1.0
- phpunit/phpunit: ^5.7
This package is auto-updated.
Last update: 2024-09-27 02:39:27 UTC
README
控制台应用程序,用于版本控制数据库表内容并显示其每日差异
分为3步完成
- 设置PHP-ODBC连接并将数据库连接存储在
/etc/odbc.ini
- 通过ODBC连接将数据库表导出到git通过git-rest-api服务器
- 编辑后再次导出表
- 获取
git diff
结果
定期导出提供了更多时间点进行diff
比较
类似工具(尚未尝试)
- Red gate:类似于该存储库,可以版本控制“静态数据”
- git-sql:SQL数据转储的差异比较
- Nayjest/db-diff:具有相同结构的两个表之间的差异比较
- PM-Connect/db-diff:两个数据库结构之间的差异比较
使用方法
(示例用法:docker-db-diff)
-
要求
-
PDO-ODBC驱动和已建立的连接
-
配置了
deep-diff-yml
的node-git-rest-api服务器 -
为
git-rest-api
服务器设置环境变量
export DBDIFF_GRAPI_HOST=https://:8082
- 概述
./bin/pdo-git export [--init] <DSN> <DB>..<TABLE> ./bin/pdo-git post-commit --format [html,console,json] -- <DSN> <DB>..<TABLE>
注意:<DB>..<TABLE>
表示法是SQLServer特定的。对于MySQL,使用<DB>.<TABLE>
(单个点)
重置
./bin/pdo-git admin git:deleteAll
测试
- (可选)设置一个本地mysql数据库进行测试
docker run \
-e MYSQL_RANDOM_ROOT_PASSWORD=yes \
-e MYSQL_DATABASE=mf \
-e MYSQL_USER=user \
-e MYSQL_PASSWORD=password \
-v $PWD/tests/initdb.d:/docker-entrypoint-initdb.d \
-p 3306:3306 \
mysql:8
测试用例
mysql --host 127.0.0.1 --user user --password > use mf; > select * from t1
- (可选)在本地运行
git-rest-api
服务器
docker-compose up git
- (可选)使用以下选项1或2设置开发环境
- 安装依赖项:
composer install
- 运行测试:
composer test
选项1:使用vagrant的开发环境
cd exporter vagrant up VAGRANT> composer test
选项2:手动设置
安装odbc
驱动程序,例如:docker-php7...:[sudo] apt-get unixodbc unixodbc-dev tdsodbc php7.0-odbc
使用以下命令测试安装:php -i|grep odbc
安装mysql-odbc驱动程序
- ubuntu 13.04:
apt-get install libmyodbc
- ubuntu 16.04:
wget https://cdn.mysql.com//Downloads/Connector-ODBC/5.3/mysql-connector-odbc-5.3.7-linux-ubuntu16.04-x86-64bit.tar.gz tar -xzf mysql-connector-odbc-5.3.7-linux-ubuntu16.04-x86-64bit.tar.gz cd mysql.../lib cp * /usr/lib/x86_64.../odbc/
设置odbc配置
cp etc/odbc.dev.ini /etc/ cp etc/odbcinst.dev.ini /etc/
测试用例
isql MarketflowAcc user password