2009-09-02 93 views
14

Tôi đã nhìn xung quanh và dường như không thể tìm thấy bất kỳ điều gì trả lời câu hỏi cụ thể này.di chuyển dữ liệu từ MS SQL sang PostgreSQL?

Cách đơn giản nhất để di chuyển dữ liệu từ MS SQL Server 2005 DB sang cài đặt Postgres (8.x) là gì?

Tôi đã xem xét một số tiện ích như "Full Convert Enterprise", v.v., tất cả đều thất bại vì một lý do nào đó, từ các lỗi lạ khiến cho nó bị chèn lên để chèn null thay vì dữ liệu thực tế (wth?) .

Tôi đang nhìn vào một DB với tất cả các bảng trừ một cái nhìn duy nhất, procs không lưu trữ, chức năng, vv

Tại thời điểm này tôi sắp viết một tiện ích nhỏ để làm điều đó đối với tôi, Tôi không thể tin điều đó là cần thiết. Chắc chắn có nội dung nào đó ở đâu đó có thể thực hiện việc này? Tôi thậm chí không quá lo lắng về chi phí, mặc dù miễn phí là thích hợp hơn :)

Trả lời

6

Hãy xem Software Catalogue. Dưới Administration/development tools Tôi thấy DBConvert for MS SQL & PostgreSQL. Có lẽ có những công cụ tương tự khác được liệt kê.

+1

hoàn hảo, đó là chính xác những gì tôi đang tìm kiếm. Tôi lấy nó cho một ổ đĩa thử nghiệm, thích nó vì vậy tôi đã mua phiên bản đầy đủ và nó hoạt động như một nhà vô địch. Đối với những người không tìm kiếm giải pháp cụ thể này, nhưng giải pháp tương tự, họ cung cấp các công cụ để chuyển đổi và đồng bộ hóa giữa MSSQL, Postgres, Oracle, MS Access, Firebird, v.v. Tôi chỉ có thể nói cho chuyển đổi MSSQL/Postgres, nếu những chuyển đổi đó là bất kỳ dấu hiệu nào, gói phần mềm này cũng đáng giá 79 đô la. – Fred

+0

@Milen A. Radev, +1 Tuyệt vời! – Meem

-1

Cũng có các ràng buộc .NET cho MS SQL Server 2005 (rõ ràng) và cũng cho PostgreSQL. Vì vậy, nó sẽ chỉ mất một vài dòng mã để mã lên một chương trình có thể chuyển dữ liệu an toàn từ một đến khác. Khung nhìn có lẽ sẽ phải được thực hiện thủ công vì Postgres không sử dụng cùng ngôn ngữ cho các khung nhìn như là SQL Server.

+0

có, nhưng điều đó sẽ đòi hỏi rất nhiều bảo trì để theo kịp với thời gian, tôi muốn một cái gì đó mà không yêu cầu tôi phải đi sâu vào mã mỗi khi thay đổi lược đồ DB. và nếu tôi làm cho nó chung chung thì nó trở nên không đơn giản như bây giờ tôi phải đưa ra quyết định dựa trên kiểu dữ liệu, v.v. – Fred

+0

Vâng, tôi không nghĩ sẽ có một lộ trình dễ dàng. Xem tại đây http://wiki.postgresql.org/wiki/Microsoft_SQL_Server_to_PostgreSQL_Migration_by_Ian_Harding cho một số vấn đề liên quan. Có nhiều khả năng bạn sẽ có thể mã hóa thứ gì đó hoạt động trong tình huống của bạn hơn là ai đó sẽ có thể tạo ra một công cụ hoạt động cho tất cả mọi người. –

4

Bạn có thể sử dụng chức năng MS DTS (được đổi tên thành SSIS trong phiên bản mới nhất mà tôi nghĩ). Một vấn đề với DTS là tôi đã không thể làm cho nó thực hiện một cam kết sau mỗi hàng khi tải dữ liệu vào pg. Đó là tốt nếu bạn chỉ có một vài hàng 100k hay như vậy, nhưng nó thực sự rất chậm.

Tôi thường kết thúc bằng văn bản một tập lệnh nhỏ đưa dữ liệu ra khỏi SQLServer ở định dạng CSV và sau đó sử dụng COPY WITH CSV ở phía PostgreSQL.

Cả hai đều chỉ quản lý dữ liệu. Việc chăm sóc lược đồ hơi khó hơn một chút, vì các kiểu dữ liệu không nhất thiết ánh xạ thẳng. Nhưng nó có thể dễ dàng được kịch bản cùng với một tải trọng tĩnh của lược đồ. Nếu lược đồ là đơn giản (ví dụ như các kiểu dữ liệu varchar/int chẳng hạn), phần đó cũng có thể dễ dàng bị loại bỏ khỏi dữ liệu trong INFORMATION_SCHEMA.

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