有没有办法将 SQL Table Schema Comparison/Crossover 集成到 CI/CD gitlab 中?
Is there a way to integrate SQL Table Schema Comparison/Crossover into CI/CD gitlab?
上下文:
我有一个项目,我们可以在其中找到 2 个 SQL 数据库。第一个是 db_prod(在生产中),第二个是 db_test(在测试中)。
有时,我会更新我的 db_test table 架构,添加一些列。
问题:
在我的 gitlab CI/CD 管道中,我想将我的 db_test table 模式的更改集成到我的 db_prod table 模式中(我是不谈数据,只谈 table 结构)在 CD 阶段。
一些要点:
我看到已经有一些软件和 IDE(如 visual studio)可以帮助您比较 table 结构并创建更新脚本,但我没有找到方法将其集成到 CI/CD 管道中。我想到的唯一方法是开发自己的脚本。
问题:
你 know/Have 你有什么建议可以将“SQL 两个数据库之间的比较和结构交叉”集成到 CI/CD gitlab 管道中吗? :)
感谢您的回答!
PS : 我不要一些需要付费的软件
不需要任何其他软件,都可以在 Gitlab CI Pipeline 中完成。这是连接到 QA 数据库和 运行 一些查询(例如,创建表)的示例作业:
stages:
- database_setup
...
Setup QA Database:
stage: database_setup
image: mysql:8.0
variables:
GIT_STRATEGY: none
script:
# Run some queries
- mysql -h ${QA_MYSQL_HOST} -p ${QA_MYSQL_PORT} -u ${QA_MYSQL_USER} -p${QA_MYSQL_PASSWORD} -e "create database qa_database_name;"
- mysql -h ${QA_MYSQL_HOST} -p ${QA_MYSQL_PORT} -u ${QA_MYSQL_USER} -p${QA_MYSQL_PASSWORD} -e "create table example_table (id int, name, varchar(50));"
这只是一个愚蠢的例子,但是这个工作使用了一个安装了 mysql 服务器和客户端软件的 Docker 图像,但是在这个例子中我们只需要客户端连接到远程数据库服务器(由 QA_MYSQL_HOST
、QA_MYSQL_PORT
、QA_MYSQL_USER
和 QA_MYSQL_PASSWORD
变量指定,这些变量是 CI 在 Gitlab 的项目设置中定义的变量).
设置 prod 数据库的工作是相似的,但是您将连接到不同的数据库,运行 不同的查询等。
上下文:
我有一个项目,我们可以在其中找到 2 个 SQL 数据库。第一个是 db_prod(在生产中),第二个是 db_test(在测试中)。 有时,我会更新我的 db_test table 架构,添加一些列。
问题:
在我的 gitlab CI/CD 管道中,我想将我的 db_test table 模式的更改集成到我的 db_prod table 模式中(我是不谈数据,只谈 table 结构)在 CD 阶段。
一些要点:
我看到已经有一些软件和 IDE(如 visual studio)可以帮助您比较 table 结构并创建更新脚本,但我没有找到方法将其集成到 CI/CD 管道中。我想到的唯一方法是开发自己的脚本。
问题:
你 know/Have 你有什么建议可以将“SQL 两个数据库之间的比较和结构交叉”集成到 CI/CD gitlab 管道中吗? :)
感谢您的回答!
PS : 我不要一些需要付费的软件
不需要任何其他软件,都可以在 Gitlab CI Pipeline 中完成。这是连接到 QA 数据库和 运行 一些查询(例如,创建表)的示例作业:
stages:
- database_setup
...
Setup QA Database:
stage: database_setup
image: mysql:8.0
variables:
GIT_STRATEGY: none
script:
# Run some queries
- mysql -h ${QA_MYSQL_HOST} -p ${QA_MYSQL_PORT} -u ${QA_MYSQL_USER} -p${QA_MYSQL_PASSWORD} -e "create database qa_database_name;"
- mysql -h ${QA_MYSQL_HOST} -p ${QA_MYSQL_PORT} -u ${QA_MYSQL_USER} -p${QA_MYSQL_PASSWORD} -e "create table example_table (id int, name, varchar(50));"
这只是一个愚蠢的例子,但是这个工作使用了一个安装了 mysql 服务器和客户端软件的 Docker 图像,但是在这个例子中我们只需要客户端连接到远程数据库服务器(由 QA_MYSQL_HOST
、QA_MYSQL_PORT
、QA_MYSQL_USER
和 QA_MYSQL_PASSWORD
变量指定,这些变量是 CI 在 Gitlab 的项目设置中定义的变量).
设置 prod 数据库的工作是相似的,但是您将连接到不同的数据库,运行 不同的查询等。