2009-06-05 39 views
8

Tôi là kỹ sư xây dựng và chịu trách nhiệm về bố cục kiểm soát nguồn của chúng tôi. Chúng ta cần phải giữ một phiên bản của tất cả các đối tượng cơ sở dữ liệu và cũng thay đổi nhóm cùng với các kịch bản rollback để đẩy vào sản xuất. Chúng tôi có môi trường phát triển, QA và Sản xuất và có các phiên bản khác nhau của các đối tượng cơ sở dữ liệu trong mỗi môi trường. Một lĩnh vực mà chúng tôi gặp phải là vấn đề với bảng tạo ra vs thay đổi. Các nhà phát triển sẽ kiểm tra trong các thay đổi nhưng để tạo lại cơ sở dữ liệu chúng ta cần tạo ra. Có những câu chuyện mới trên trang chủ.Các tập lệnh SQL trong Subversion

+0

Thực ra tôi không chắc ý của bạn là "Một lĩnh vực chúng tôi gặp phải là do bảng tạo ra và thay đổi. Nhà phát triển sẽ kiểm tra thay đổi nhưng tạo lại cơ sở dữ liệu chúng tôi cần tạo.", Bạn có thể cụ thể hơn không? – marcgg

+0

Tôi nghĩ rằng anh ta có nghĩa là họ kiểm tra trong một tập tin mã SQL cho một SP bắt đầu với 'ALTER PROC', nhưng họ sử dụng/cần 'CREATE PROC' để bạn có thể tạo DB từ đầu. – Paul

+0

Đó là chính xác những gì tôi có nghĩa là @Paul cảm ơn cho làm rõ. –

Trả lời

2

Bài viết này sẽ trả lời hầu hết nếu không phải tất cả các câu hỏi

http://odetocode.com/Blogs/scott/archive/2008/01/30/11702.aspx

+0

Bài viết này về cơ bản lại hỏi câu hỏi của tôi phần 3 là những gì tôi đang cố gắng để thực hiện. Tôi đang tìm kiếm một cấu trúc và/hoặc quy trình cho phép tôi phiên bản cơ sở dữ liệu của mình và đáp ứng các ràng buộc khác của câu hỏi của tôi. Cảm ơn bài viết tho. –

+0

lmgtfy "site: odetocode.com phiên bản cơ sở dữ liệu" trông khá hứa hẹn – dotjoe

+0

Trang web này chứa rất nhiều thông tin về các vấn đề liên quan đến phiên bản phải mất một lúc để ghép chúng lại với nhau nhưng đáng xem. Cảm ơn –

1

Bạn nên nhìn vào cách các khuôn khổ như đường ray xử lý di cư

http://dizzy.co.uk/ruby_on_rails/cheatsheets/rails-migrations

+0

Tôi không thực sự tìm cách để biến đổi cơ sở dữ liệu chỉ là cách để phiên bản và theo dõi những gì đang xảy ra với nó. –

+0

Nếu bạn sử dụng di chuyển, mọi thứ sẽ được đưa vào lật đổ và bạn sẽ có thể sử dụng để theo dõi mọi thứ. Thêm vào đó là một cách rất hay để xử lý các thay đổi DB. Tôi không nghĩ rằng tôi hiểu hoàn toàn vấn đề của bạn nghĩ rằng – marcgg

3

Tôi là một fan cuồng nhiệt của http://www.liquibase.org/. Nó cho phép bạn theo dõi các phiên bản của cơ sở dữ liệu của bạn, bao gồm khả năng "cập nhật" và "rollback" lược đồ/dữ liệu của bạn.

Họ có một cú pháp đẹp XML đã nướng trong hỗ trợ cho phép tái cấu trúc thông thường, bao gồm cả những chi tiết trong http://databaserefactoring.com/

Họ cũng có plugin Eclipse để giúp tạo ra các kịch bản thay đổi, và kiến ​​nhiệm vụ cho hội nhập xây dựng của bạn.

Đơn khiếu nại duy nhất của tôi là nó dựa trên Java và tôi thích cài đặt java trên máy chủ xây dựng của tôi cho các dự án .NET. Trong trường hợp đó tôi đã nghe những điều tốt đẹp về http://code.google.com/p/migratordotnet/.

+0

Tôi đã bỏ phiếu vì tôi thích liên kết tới migratordotnet. Tôi sẽ phải xem xét đặc biệt là MSBuild Task. Cảm ơn –

0

tôi có thể khuyên bạn nên kịch bản như vậy:

  1. Dbunit cho dân dữ liệu (ví dụ từ điển, masterdata và thông tin cơ sở dữ liệu quan trọng khác)
  2. Liquibase của dbdeploy cho cơ sở dữ liệu sắp xếp. Trong tâm trí của tôi liquibase là công cụ định hướng tái cấu trúc nhiều hơn và dbdeploy - nhiều quy trình hơn (tức là bạn phải làm nhiều việc hơn bằng tay, nhưng nó đơn giản hóa quá trình phát triển, thử nghiệm và hỗ trợ sản xuất).

Nếu công ty của bạn đang sử dụng ORM, bạn có thể tạo lược đồ cơ sở dữ liệu "diff" khi đang chạy dựa trên công cụ ORM. Bên cạnh đó, nếu sản phẩm của bạn hoạt động với các cơ sở dữ liệu khác nhau, bạn sẽ có mức độ phức tạp bổ sung. Thật không may, không phải dbdeploy, cũng không phải liquiase đã hài lòng với tôi về việc phát triển/tái cấu trúc nhiều cơ sở dữ liệu.

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