Using Git to track mysql schema - some questions

后端 未结 8 2032
忘掉有多难
忘掉有多难 2020-12-04 10:27

If this is recommended ?

Can I ask some git command examples about how to track versions of mysql schema?

Should we use another repository other then the on

8条回答
  •  [愿得一人]
    2020-12-04 10:39

    The following includes a git pre-commit hook to capture mysql database/schema, given user='myuser', password='mypassword', database_name='dbase1'. Properly bubbles errors up to the git system (the exit 0's in other answers could be dangerous and may not handle error scenarios properly). Optionally, can add a database import to a post-checkout hook (when capturing all the data, not just schema), but take care given your database size. Details in bash-script comments below.

    pre-commit hook:

    #!/bin/bash
    
    # exit upon error
    set -e
    # another way to set "exit upon error", for readability
    set -o errexit
    
    mysqldump -umyuser -pmypassword dbase1 --no-data=true > dbase1.sql
    
    # Uncomment following line to dump all data with schema,
    # useful when used in tandem for the post-checkout hook below.
    # WARNING: can greatly expand your git repo when employing for
    # large databases, so carefully evaluate before employing this method.
    # mysqldump -umyuser -pmypassword dbase1 > dbase1.sql
    
    git add dbase1.sql
    

    (optional) post-checkout hook:

    #!/bin/bash
    # mysqldump (above) is presumably run without '--no-data=true' parameter.
    set -e
    mysql -umyuser -pmypassword dbase1 < dbase1.sql
    

    Versions of apps, OS I'm running:

    root@node1 Dec 12 22:35:14 /var/www# mysql --version
    mysql  Ver 14.14 Distrib 5.1.54, for debian-linux-gnu (x86_64) using readline 6.2
    root@node1 Dec 12 22:35:19 /var/www# git --version
    git version 1.7.4.1
    root@node1 Dec 12 22:35:22 /var/www# lsb_release -a
    No LSB modules are available.
    Distributor ID: Ubuntu
    Description:    Ubuntu 11.04
    Release:        11.04
    Codename:       natty
    root@node1 Dec 12 22:35:28 /var/www#
    

提交回复
热议问题