2009-04-23 38 views
5

Tôi đang làm việc trên một dự án với một vài dự án khác. Tất cả chúng ta đều có bản sao cục bộ của dự án, cũng được cập nhật liên tục qua repo svn.Đồng bộ hóa các lược đồ cơ sở dữ liệu giữa các nhà phát triển

Bởi vì chúng tôi đang ở giai đoạn đầu của sự phát triển, chúng tôi thường xuyên thay đổi lược đồ của cơ sở dữ liệu của chúng tôi. Điều này dẫn đến rất nhiều vấn đề khi chúng tôi đồng bộ mã của chúng tôi, bởi vì chúng tôi không có một cách tuyệt vời để đồng bộ hóa lược đồ cơ sở dữ liệu của chúng tôi.

Một số cách trực quan và dễ dàng để đồng bộ hóa giản đồ cơ sở dữ liệu thay đổi thường xuyên là gì?

Chúng tôi đang làm việc với CakePHP (không chắc chắn điều này có giúp tôi tìm ra giải pháp tốt hay không).

EDIT

Tìm thấy một số công cụ để làm công việc này trong CakePHP: http://book.cakephp.org/view/734/Schema-management-and-migrations

Và đây là một trang web bổ sung: http://bakery.cakephp.org/articles/view/cake-db-migrations-v2-1

Trả lời

2

cơ sở dữ liệu di cư là một cách dễ dàng để giữ cho cơ sở dữ liệu hoạt động của bạn được đồng bộ hóa. Về cơ bản, di chuyển là các kịch bản cập nhật cơ sở dữ liệu sang lược đồ mới nhất và điền vào các bảng mới với dữ liệu chính xác, vì vậy chúng được giữ ở trạng thái hợp lệ.

Có vài tính năng được cung cấp bởi di cư:

  • Công cụ để tự động tạo/cập nhật các bảng. Các công cụ theo dõi phiên bản lược đồ và các tập lệnh nào cần được chạy.
  • Một số công cụ di chuyển cung cấp khả năng chạy mã (C#, ruby, v.v.) thay vì tập lệnh sql. Các thư viện mã do công cụ di chuyển cung cấp thường có khả năng trừu tượng tốt hơn các phần phụ thuộc vào cơ sở dữ liệu và làm cho cơ sở dữ liệu của bạn tập lệnh cơ sở dữ liệu độc lập hơn.

Có các công cụ có sẵn cho Ruby (di chuyển là một phần quan trọng của Rails), C# và Java. Chắc chắn, các ngôn ngữ khác cũng có.

Có một số questionshere khi di chuyển và tôi khuyên bạn nên tìm kiếm công cụ di chuyển phù hợp trong chuỗi công cụ của bạn.

+0

hm. tìm thấy một công cụ cho CakePHP có thể làm việc cho chúng tôi! (Tôi nên đi thử ASAP này) Cảm ơn lời đề nghị của bạn. – codingbear

+0

np - rất vui vì bạn đã tìm được thứ gì đó phù hợp với mình. chúc may mắn. –

1

CakePHP Database Migrations bởi Joel Moss là giải pháp tốt nhất hiện nay.

Mô tả dự án từ github:

Cơ sở dữ liệu Di cư cho CakePHP 1.2 là một kịch bản được hỗ trợ bởi CakePHP console, cho phép bạn quản lý cơ sở dữ liệu schema của bạn mà không cần chạm vào một chút của SQL. Nó dựa trên việc thực hiện Migration của Ruby on Rails, và sử dụng gói MDB2 của Pear, vì vậy hỗ trợ tất cả các cơ sở dữ liệu hỗ trợ.

Bạn có thể nghĩ rằng Di chuyển là hệ thống kiểm soát phiên bản cho cơ sở dữ liệu của mình. Sức mạnh của nó hoàn toàn tự phát triển như một phần của một nhóm, vì mỗi thành viên có thể giữ bản sao độc lập của cơ sở dữ liệu ứng dụng của họ và sử dụng Migrations để thay đổi lược đồ của nó. Tất cả các thành viên khác phải làm sau đó, là chạy một lệnh shell hai từ đơn giản và bản sao cơ sở dữ liệu của họ được cập nhật với những người khác.

Vỏ di chuyển sẽ tạo tệp di chuyển cho mỗi thay đổi DB bạn muốn thực hiện. Tệp này có thể bao gồm bất kỳ số lượng thay đổi DB nào.

0

tôi đã bắt đầu một dự án nhỏ mà chúng tôi sử dụng để đồng bộ hóa cơ sở dữ liệu giữa các nhà phát triển và triển khai với sản xuất. Nó vẫn còn ở giai đoạn đầu, nhưng nó đã được chứng minh để làm việc nó chỉ không có nhiều tài liệu được nêu ra.

http://code.google.com/p/php-mysql-version-control/

Các vấn đề liên quan