2012-05-09 35 views
13

Tôi đã tự hỏi liệu mọi người có thể đăng giải pháp của họ lên vấn đề liên tục của cơ sở dữ liệu địa phương và kết nối khác nhau giữa nhiều nhà phát triển trong một dự án trong kiểm soát nguồn không?Mọi người lưu trữ kết nối như thế nào?

Cụ thể hơn, tôi đang nói về vấn đề nơi dự án kiểm soát nguồn và có nhiều nhà phát triển với cơ sở dữ liệu cục bộ. Mỗi nhà phát triển có chuỗi kết nối riêng của họ (tên dụ, trường hợp mặc định, tên máy, tên người dùng, mật khẩu, v.v.). Mỗi lần kiểm tra sẽ ghi đè phiên bản trước đó và kéo kết quả phiên bản mới nhất bằng cách sử dụng chuỗi kết nối của người khác.

Vì vậy, mọi người, bạn đang sử dụng giải pháp nào cho vấn đề này? Các điểm bổ sung để giải thích lý do tại sao giải pháp của họ hoạt động, ưu và khuyết điểm.

EDIT Hãy nhớ rằng câu trả lời này không nên chỉ được nhắm mục tiêu đến môi trường doanh nghiệp mà bạn có toàn quyền kiểm soát thiết lập. Giải pháp phù hợp nên hoạt động với mọi người: doanh nghiệp, người khởi nghiệp và nhà phát triển nguồn mở.

Cảm ơn!

Trả lời

10

Đối với tôi, câu hỏi của bạn dường như ngụ ý một trong hai kết quả:

  1. Một chuỗi kết nối được quy định tại Web.tệp cấu hình đủ chung để làm việc cho tất cả các phiên bản cục bộ của cơ sở dữ liệu. Bạn đã chỉ ra rằng đây không phải là thiết lập lý tưởng trong môi trường mà bạn không có toàn quyền kiểm soát.
  2. Mỗi nhà phát triển được yêu cầu cung cấp chuỗi kết nối của riêng mình mà không bao giờ được kiểm tra vào kiểm soát nguồn.

Một vài trường hợp khác đã trình bày kịch bản đầu tiên. Sử dụng localhost và theo một quy ước cho tên cơ sở dữ liệu. Đối với phương án 2, tôi muốn khuyên bạn nên xác định một nguồn cấu hình mà không được kiểm tra vào kiểm soát nguồn:

<configuration> 
    <connectionStrings configSource="connectionStrings.config"/> 
</configuration> 

EDIT:

connectionStrings.config

<connectionStrings> 
    <add name="Name" 
    providerName="System.Data.ProviderName" 
    connectionString="Valid Connection String;" /> 
</connectionStrings> 

Từ: http://msdn.microsoft.com/en-us/library/ms254494(v=vs.80).aspx

connectionStrings.config sẽ là một tệp trong thư mục gốc của dự án mà bạn đã loại trừ cụ thể khỏi kiểm soát nguồn. Mỗi nhà phát triển sẽ được yêu cầu cung cấp tệp này khi làm việc cục bộ. Chuỗi kết nối sản xuất của bạn có thể được thay thế thông qua chuyển đổi Web.config khi xây dựng/triển khai.

+0

Giải pháp tuyệt vời! Chính xác những gì tôi đang tìm kiếm và không biết điều đó có thể thực hiện được –

5

Tất cả các trạm phát triển của chúng tôi đều được thiết lập giống nhau.

  1. Chúng tôi sử dụng xác thực tích hợp cho cơ sở dữ liệu, vì vậy không cần lưu trữ người dùng/mật khẩu.
  2. Mọi người đều sử dụng phiên bản mặc định.
  3. Vì chúng là tất cả cơ sở dữ liệu cục bộ, bạn có thể sử dụng localhost.
  4. tên cơ sở dữ liệu tương tự

Vì vậy, một chuỗi kết nối có thể kết thúc là:

Data Source=localhost;Initial Catalog=TheDatabaseName;Integrated Security=SSPI; 

Và tất cả mọi người sử dụng đó.

+0

Điều này hoạt động rất tốt trên môi trường doanh nghiệp. Tôi đã sửa đổi câu hỏi để thêm các yêu cầu khác. –

+0

Tôi nghĩ rằng nó là công bằng để yêu cầu devs trên một dự án phi doanh nghiệp để làm cho một số cấu hình địa phương để có được môi trường riêng sẵn sàng cho việc phát triển. +1 – faester

+2

Tôi không nghĩ vậy. Nếu bạn tham gia vào nhiều dự án bạn không thể mong đợi rằng dev có một môi trường dev cho từng dự án. –

0

Tôi đã thấy nhiều phương pháp khác nhau được sử dụng.

i) Bạn chỉ duy trì một chuỗi kết nối trực tiếp và các nhà phát triển thực hiện sửa đổi các mô-đun có liên quan và không bao giờ kiểm tra xem nó trong.

ii) Một app.config được duy trì với các dây kết nối và nó là một tập tin được chia sẻ như xa như kiểm soát nguồn là có liên quan.

iii) Trong cấu hình gỡ lỗi, chi tiết chuỗi kết nối được chuyển trong dòng lệnh từ IDE.

1

Chúng tôi có cơ sở dữ liệu thử nghiệm chạy trên máy chủ của chính nó. Nó chỉ là dữ liệu thử nghiệm thực sự được nhân rộng từ máy chủ trực tiếp mỗi đêm. Tất cả các nhà phát triển đều sử dụng tính năng này để thử nghiệm. Đó là dữ liệu thực sự nhưng không quan trọng vì nó là một ngày cũ. Chúng tôi lưu trữ các chuỗi kết nối trong web.config tất nhiên. Tôi có một chức năng để có được chuỗi kết nối từ web.config và tôi chỉ cần xem nếu nó là localhost trả về chuỗi kết nối thử nghiệm. nếu không thì trả về chuỗi kết nối trực tiếp. Điều này phù hợp với chúng tôi. Và chúng tôi không sử dụng cơ sở dữ liệu cục bộ.

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