当前位置: 首页 > 面试题库 >

使用Git跟踪mysql模式-一些问题

昌招
2023-03-14
问题内容

如果建议这样做?

我可以问一些有关如何跟踪mysql模式版本的git命令示例吗?

我们是否应该使用通常在应用程序根目录上使用的另一个存储库?

我应该使用一种叫做钩子的东西吗?

更新:

1) 我们导航到.git数据库所在的项目根目录。

2) 我们创建一个名为hooks的子文件夹。

3) 我们将类似以下内容放入名为db-commit的文件中:

   #!/bin/sh
   mysqldump -u DBUSER -pDBPASSWORD  DATABASE --no-data=true> SQLVersionControl/vc.sql
   git add SQLVersionControl/vc.sql
   exit 0

现在我们可以:

4) git commit -m

该提交将包括刚提交前已运行的mysql模式转储。

以上内容的来源在这里:http : //edmondscommerce.github.io/git/using-
git-to-track-db-schema-changes-with-git-
hook.html

如果这样做是可以接受的方式,我可以请耐心的人逐行并尽可能详细地评论一下,这是怎么回事:

#!/bin/sh
mysqldump -u DBUSER -pDBPASSWORD  DATABASE --no-data=true> SQLVersionControl/vc.sql
git add SQLVersionControl/vc.sql
exit 0

非常感谢。


问题答案:

假设您已经有一个git repo,请在shell脚本中执行以下操作或执行以下操作:

#!/bin/bash -e
# -e means exit if any command fails
DBHOST=dbhost.yourdomain.com
DBUSER=dbuser
DBPASS=dbpass # do this in a more secure fashion
DBNAME=dbname
GITREPO=/path/to/git/repo
cd $GITREPO
mysqldump -h $DBHOST -u $DBUSER -p$DBPASS -d $DBNAME > $GITREPO/schema.sql # the -d flag means "no data"
git add schema.sql
git commit -m "$DBNAME schema version $(`date`)"
git push # assuming you have a remote to push to

然后每天从cron作业或您拥有的内容中启动此脚本。

编辑:通过将脚本放入$ gitdir / hooks / pre- commit
(名称很重要)中,该脚本将在每次提交之前执行。这样,每次提交都可以捕获数据库模式的状态,这很有意义。如果您每次提交时都自动运行此sql脚本,则将删除数据库,这没有任何意义。

#!/bin/sh

此行指定它是一个shell脚本。

mysqldump -u DBUSER -pDBPASSWORD  DATABASE --no-data=true> SQLVersionControl/vc.sql

这与我上面的答案相同;仅从数据库中获取DDL并将其存储在文件中。

git add SQLVersionControl/vc.sql

这会将SQL文件添加到对存储库的每次提交中。

exit 0

这将成功退出脚本。这可能很危险。如果mysqldumpgit add失败,您可能会吹走想要保留的东西。



 类似资料:
  • 在 CakePHP 的开发过程中,以问题跟踪系统的形式从社区获得反馈和帮助是极为重要的一部 分。所有 CakePHP 的问题跟踪都托管在 GitHub 上。 报告臭虫 写得好的问题报告都非常有用。下面的步骤可以帮助创建尽可能好的问题报告: 请 搜索 类似的已有问题,并保证别人没有报告你的问题,或者在源代码仓库中还没有得到修复。 请 包括 如何重现问题 的详细说明。这可以是测试用例或代码片段,来展示

  • 本章介绍如何使用Zipkin或Jaeger收集启用了Istio的应用程序的调用链信息。 完成本章后,你可以理解有关应用程序的所有假设以及如何使其参与跟踪,无论您使用何种语言/框架/平台构建应用程序。 BookInfo示例用来作为此任务的示例应用程序。 环境准备 参照安装指南的说明安装Istio。 如果您在安装过程中未启动Zipkin或Jaeger插件,则可以运行以下命令启动: 启动Zipkin:

  • 当我将单体应用拆成多个微服务之后,如何监控服务之间的依赖关系和调用链,以判断应用在哪个服务环节出了问题,哪些地方可以优化?这就需要用到分布式追踪(Distributed Tracing)。 CNCF 提出了分布式追踪的标准 OpenTracing,它提供用厂商中立的 API,并提供 Go、Java、JavaScript、Python、Ruby、PHP、Objective-C、C++ 和 C# 这九

  • 开发人员之间可以共享的主要内容是代码样式配置。因此,通过使用IDE自动重新格式化选项,所有团队都将遵循一致的风格。 除此之外,问题是还有哪些文件是建议被包括而不是忽略的?为什么? 回答:我碰到了这个:https://github.com/salarmehr/idea-gitignore

  • 跟踪行为控制着 Entity Framework Core 是否会在其变更跟踪器里维持实体实例的信息。如果实体是被跟踪的,任何检测到的该实体的变更都将在 SaveChanges() 时持久化到数据库中。Entity Framework Core 还会对已跟踪的、之前已加载到 DbContext 实例中的查询和实体进行相互的导航属性装配。 提示 你可以在 GitHub 上查阅当前文章涉及的代码样例。

  • 我最近将我的项目从spring boot 1.4.1、spring cloud Sleuth 1.1.0、spring cloud Zipkin 1.1.0升级到spring boot 1.5.3、spring cloud Sleuth 1.2.0、spring cloud Zipkin 1.2.0。 在最新版本的spring cloud Sleuth中,他们添加了“错误”标签,一旦出现任何异常,