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

chỉ lược đồ mysqldump, cập nhật giản đồ mà không bị rớt

Làm thế nào để MySQL biết những gì cần cập nhật? Nó không thể biết cơ sở dữ liệu của người khác sẽ ở trạng thái nào, vì vậy nó không thể biết những bản cập nhật nào cần áp dụng. Ngoài ra, các bản cập nhật thường xuyên yêu cầu nhiều hơn là chỉ thay đổi lược đồ; chúng có thể yêu cầu các thay đổi đối với dữ liệu đã tồn tại hoặc có thể cần chuyển dữ liệu từ giản đồ cũ sang lược đồ mới. Bạn sẽ không bao giờ nhận được thứ gì đó sẽ tự động phát hiện tất cả những thứ đó.

Giải pháp đúng là viết chuyển đổi. Mỗi khi bạn thay đổi cơ sở dữ liệu, thay vì chỉ tự mình thay đổi lược đồ của bản sao phát triển của mình, bạn viết một tập lệnh để cập nhật từ lược đồ trước đó lên lược đồ mới (và thường là tập lệnh để hạ cấp trở lại lược đồ trước đó, vì vậy bạn có thể làm nếu bạn cần khôi phục bản cập nhật). Tập lệnh đó thực hiện bất cứ điều gì bạn cần để thay đổi lược đồ, di chuyển dữ liệu và những thứ tương tự.

Hầu hết các khuôn khổ web hiện đại, như Ruby on Rails , có hỗ trợ cho quá trình di chuyển để giúp bạn dễ dàng theo dõi những lần di chuyển nào bạn đã chạy. Nếu bạn không sử dụng một khuôn khổ hỗ trợ di chuyển, sẽ không quá vội vàng khi viết các tập lệnh của riêng bạn để áp dụng di chuyển. Chỉ cần đánh số thứ tự cho mỗi lần di chuyển hoặc ghi ngày tháng vào đó và giữ một bảng trong cơ sở dữ liệu của bạn chỉ lưu trữ phiên bản hiện tại của lược đồ mà bạn đang sử dụng. Khi bạn chạy tập lệnh di chuyển của mình, nếu có bất kỳ bản di chuyển nào mới hơn phiên bản hiện tại đó, hãy áp dụng các tập lệnh đó theo thứ tự, sau đó cập nhật số trong cơ sở dữ liệu cho biết bạn đang sử dụng phiên bản nào.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sử dụng MySQL trong môi trường thương mại có hợp pháp không?

  2. MySQL chọn ngày được định dạng từ trường mili giây

  3. Tôi nên xử lý --secure-file-priv trong MySQL như thế nào?

  4. Thêm các biến tùy chỉnh khác vào chèn mysql trên blueimp / jquery-file-upload

  5. MySQL insert to DATETIME:Sử dụng định dạng ISO ::8601 có an toàn không?