使用git将mysql数据库脚本推送到服务器

3

我需要定期备份MySQL数据库脚本(不包含数据)。同时,我想使用git将脚本与源代码一起推送到服务器上。我已经使用git完成了源代码的推送和拉取操作,但我也想推送DB脚本。如何使用git实现这一目标?有什么好的想法吗?


推送 DB 脚本是什么意思?可以使用 git add <file> 命令添加 .sql 文件,然后提交和推送。如果您的意思是将数据库更改与应用程序更改同步,那么这是一个不同的问题。 - Hazok
是的,同样的事情。如果我更改任何表并将脚本推送到服务器,服务器应该备份该脚本吗?你说的会起作用吗? - Anitha
我不知道同步数据库的含义,但是我想备份数据库脚本,因为我正在进行源代码编写。 - Anitha
1个回答

2

我不确定Git是否是存储数据库备份的最佳位置,这取决于预计数据库的增长方式。但是,如果希望将SQL备份存储在Git中,可以使用mysqldump和git命令来执行以下操作:

mysqldump -h <host> -u <user> -p <db_name> > <sql_file>
git add <sql_file>
git commit -m "Latest mysqldump"
git push

例如:

mysqldump -h 127.0.0.1 -u mydbuser -p mydbschema > 'db/currentBackup.sql'
git add 'db/currentBackup.sql'
git commit -m "Latest mysqldump"
git push

更多选项可以在MySQL文档中找到:http://dev.mysql.com/doc/refman/5.6/en/mysqldump.html

非常感谢。但我也怀疑在推送后,git是否会自动存储数据库脚本的备份。 - Anitha
Git 会存储文件中放置的任何内容。 - Hazok
没问题。但是在推送代码和脚本之前,我需要每次都转储脚本吗?Git不会自动接受更改吗? - Anitha
转储文件提供了一个 SQL 脚本,可以重新创建数据库。Git 将把此脚本视为与先前脚本的更改集,因此会有差异。如果 mysqldump 一致地生成 SQL 脚本,则 Git 应该具有良好的差异,显示从提交到提交的增量更改。 - Hazok

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接