01/10/2018, 09:31

Cách chia sẻ cơ sở dữ liệu cho team làm project

Hiện tại em đang làm team về project nhưng cơ sở dữ liệu em chưa viết thủ tục.Bây giờ em muốn bạn em vừa viết code, em vừa viết thủ tục thì em nên share cơ sở dữ liệu kiểu gì ạ? Về phần code em đăng lên git nên mỗii khi commit thì mọi người đều nhận bản sửa chữa. Và em muốn cơ sở dữ liệu cũng được như thế.

Hung viết 11:31 ngày 01/10/2018

Tuỳ bạn làm theo monolithic applications: (1) sử dụng 1 framework cho tất cả tính năng, (2) hay microservices, sử dụng nhiều framework, mỗi tính năng 1 framework đảm nhiệm.

Monolithic applications thì cả team phải thống nhất bản thiết kế database.
Microservice thì có nhiều team, mỗi team 1 tính năng, 1 database riêng. Database của team này không liên quan đến team khác.

viết 11:37 ngày 01/10/2018

Bạn có thể setup vpn cho team để sử dụng chung db

Ice Tea viết 11:43 ngày 01/10/2018

Cái này gọi là Database versioning hoặc Database migration, bạn có thể search ra nhiều bài chi tiết hơn.

Nhìn chung, để quản lý db bằng version control (git) thì bạn cần phải viết các thay đổi của database ra các script. Mình có thử search tool tích hợp vào SQL Server Management Studio nhưng chưa tìm được cái nào tốt hoặc mất phí.

Không biết project của bạn là web hay gì, có dùng framework gì ko, thường thì các web framework mình biết đều hỗ trợ viết migration bằng ngôn ngữ lập trình của framework đó (ASP.Net, PHP…) thay cho việc viết bằng SQL. Ngoài ra có một số tool như Liquibase, Flyway, v.v…

Cách thực hiện migration thường là:

  1. Mỗi khi muốn thay đổi database, bạn tạo 1 file script. Trong file này sẽ mô tả cách áp dụng thay đổi và cách rollback những thay đổi đó. Tên file thường đặt theo thứ tự thời gian, để sau này có thể setup lại db bằng cái chạy lần lượt các file đó, vd: 1_20170506120102_create_table_products, 2_20170507210105_alter_products_add_column_price,… Lưu ý là bạn không nên sửa những file script đã tạo, muốn thay đổi gì bạn phải tạo 1 file script mới, để đảm bảo quá trình migrate có thể được thực hiện từ đầu đến cuối.
  2. Thực hiện migrate
    • Nếu bạn dùng framework hay tool, thường nó sẽ cung cấp cho bạn câu lệnh (command line) để chạy migrate. Lệnh này sẽ tự động chạy những file script chưa được chạy (thường sẽ có 1 bảng phụ trong db để lưu trạng thái migration, ví dụ lần migrate thứ nhất chạy những script nào, lần thứ 2 chạy những script nào…)
    • Nếu bạn muốn thực hiện thủ công thì mỗi lần pull code về, check xem có file migration nào không thì chạy file đó. Bạn cũng nên tạo 1 bảng tạm để lưu status của việc thay đổi, ví dụ cấu trúc như thế này .
Bài liên quan
0