Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Sử dụng Git để theo dõi lược đồ mysql - một số câu hỏi

Giả sử bạn đã có git repo, hãy làm như sau trong shell script hoặc bất cứ thứ gì:

#!/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

Sau đó, bắt đầu tập lệnh này hàng ngày từ một công việc cron hoặc những gì có bạn.

CHỈNH SỬA:Bằng cách đặt tập lệnh vào $ gitdir / hooks / pre -commit (tên quan trọng), tập lệnh sẽ được thực thi trước mỗi lần cam kết. Bằng cách này, trạng thái của lược đồ DB được ghi lại cho mỗi lần cam kết, điều này có ý nghĩa. Nếu bạn tự động chạy tập lệnh sql này mỗi khi bạn cam kết, bạn sẽ phá hủy cơ sở dữ liệu của mình, điều này không có ý nghĩa.

#!/bin/sh

Dòng này chỉ định rằng đó là một tập lệnh shell.

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

Điều này cũng giống như trong câu trả lời của tôi ở trên; chỉ lấy DDL từ cơ sở dữ liệu và lưu trữ trong tệp.

git add SQLVersionControl/vc.sql

Điều này thêm tệp SQL vào mọi cam kết được thực hiện cho kho lưu trữ của bạn.

exit 0

Điều này sẽ thoát khỏi tập lệnh thành công. Điều này có thể nguy hiểm. Nếu mysqldump hoặc git add không thành công, bạn có thể thổi bay thứ mà bạn muốn giữ lại.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chèn &tham gia MySQL

  2. PHP:Hiển thị hộp thoại xác nhận có / không

  3. Tính toán phần trăm từ lần truy cập gần đây trong MySQL

  4. Mysql chèn ngày giờ ngẫu nhiên trong một phạm vi ngày giờ nhất định

  5. Để lập kế hoạch cho dự án MySQL đầu tiên của tôi