Postgresql 9.2.24 Tài liệu | ||||
---|---|---|---|---|
prev | UP | Chương 35. Mở tỷ lệ kèo bóng đáSQL | Tiếp theo |
Một tiện ích mở tỷ lệ kèo bóng đá hữu ích choPostgreSQLthường bao gồm nhiều SQL đối tượng; Ví dụ: một loại dữ liệu mới sẽ yêu cầu các chức năng mới, Các nhà khai thác mới, và có thể là các lớp toán tử chỉ mục mới. Nó là hữu ích để thu thập tất cả tỷ lệ kèo bóng đá này vào một gói duy nhất để đơn giản hóa quản lý cơ sở dữ liệu.POSTGRESQLgọi một gói như vậyMở tỷ lệ kèo bóng đá. Để xác định một phần mở tỷ lệ kèo bóng đá, bạn cần ở ít nhất aTập tin tập lệnhchứaSQLlệnh để tạo các đối tượng của tiện ích mở tỷ lệ kèo bóng đá và mộtTệp điều khiểnChỉ định một vài thuộc tính cơ bản của chính tiện ích mở tỷ lệ kèo bóng đá. Nếu như Phần mở tỷ lệ kèo bóng đá bao gồm mã C, thông thường cũng sẽ có một Tệp thư viện chia sẻ mà mã C đã được xây dựng. Một lần bạn có những tệp này, đơn giảnTạo tiện ích mở tỷ lệ kèo bóng đáLệnh tải Đối tượng vào cơ sở dữ liệu của bạn.
Ưu điểm chính của việc sử dụng tiện ích mở tỷ lệ kèo bóng đá, thay vì chỉ ChạySQLtập lệnh để tải Một loạt"Loose"Đối tượng vào của bạn cơ sở dữ liệu, đó làPostgreSQLSau đó sẽ hiểu rằng các đối tượng của phần mở tỷ lệ kèo bóng đá đi cùng nhau. Bạn có thể bỏ tất cả các đối tượng bằng mộtTiện ích mở tỷ lệ kèo bóng đálệnh (không cần Duy trì riêng"Gỡ cài đặt"tập lệnh). Thậm chí hữu ích hơn,pg_dumpbiết rằng nó không nên đổ các đối tượng thành viên cá nhân của phần mở tỷ lệ kèo bóng đá - nó sẽ chỉ bao gồm MộtTạo tiện ích mở tỷ lệ kèo bóng đáLệnh trong bãi rác, thay vì. Điều này rất đơn giản hóa việc di chuyển sang một phiên bản mới của phần mở tỷ lệ kèo bóng đá có thể chứa nhiều hoặc các đối tượng khác nhau so với Phiên bản cũ. Tuy nhiên, lưu ý rằng bạn phải có tiện ích mở tỷ lệ kèo bóng đá kiểm soát, tập lệnh và các tệp khác có sẵn khi tải như vậy đổ vào cơ sở dữ liệu mới.
PostgreSQLSẽ không cho phép bạn thả một đối tượng riêng lẻ có trong một phần mở tỷ lệ kèo bóng đá, ngoại trừ Thả toàn bộ phần mở tỷ lệ kèo bóng đá. Ngoài ra, trong khi bạn có thể thay đổi Định nghĩa của một đối tượng thành viên mở tỷ lệ kèo bóng đá (ví dụ: thông quaTạo hoặc thay thế chức năngcho a chức năng), hãy nhớ rằng định nghĩa sửa đổi sẽ không Bị bỏ rơi bởipg_dump. Một sự thay đổi như vậy thường chỉ hợp lý nếu bạn đồng thời thực hiện thay đổi tương tự Trong tệp tập lệnh của tiện ích mở tỷ lệ kèo bóng đá. (Nhưng có những điều khoản đặc biệt cho các bảng chứa dữ liệu cấu hình; Xem bên dưới.)
Cơ chế mở tỷ lệ kèo bóng đá cũng có quy định cho bao bì Các tập lệnh sửa đổi điều chỉnh các định nghĩa của SQL các đối tượng chứa trong một phần mở tỷ lệ kèo bóng đá. Ví dụ: nếu phiên bản 1.1 của Một tiện ích mở tỷ lệ kèo bóng đá thêm một chức năng và thay đổi phần thân của một chức năng khác chức năng so với 1.0, tác giả mở tỷ lệ kèo bóng đá có thể cung cấpCập nhật tập lệnhĐiều đó chỉ làm cho hai người đó thay đổi. TheCập nhật mở tỷ lệ kèo bóng đá thay đổi12778_12918
Các loại đối tượng SQL có thể là thành viên của tiện ích mở tỷ lệ kèo bóng đá được hiển thị trong mô tả củamở tỷ lệ kèo bóng đá thay đổi13078_13725"trong"Bất kỳ lược đồ nào. Thành viên của tiện ích mở tỷ lệ kèo bóng đá Các đối tượng, tuy nhiên, sẽ thuộc về các lược đồ bất cứ khi nào thích hợp cho Các loại đối tượng của họ. Nó có thể hoặc không thể phù hợp với Tiện ích mở tỷ lệ kèo bóng đá để sở hữu (các) đối tượng thành viên của nó ở bên trong.
ThePostgreSQL: Tài liệu: 9.2:Lệnh dựa vào tệp điều khiển cho mỗi tiện ích mở tỷ lệ kèo bóng đá, phải được đặt tên giống như phần mở tỷ lệ kèo bóng đá với hậu tố.Controlvà phải được đặt trong Cài đặt củachia sẻ/mở tỷ lệ kèo bóng đáThư mục. Cũng phải có ít nhất mộtSQLTập tin tập lệnh, theo sau việc đặt tên mẫuMở tỷ lệ kèo bóng đá--phiên bản.sql(ví dụ:foo--1.0.sqlcho phiên bản1.0của phần mở tỷ lệ kèo bóng đáfoo). Theo mặc định, (tỷ lệ kèo bóng đá) tệp tập lệnh cũng được đặt trongchia sẻ/mở tỷ lệ kèo bóng đáThư mục; Nhưng Tệp điều khiển có thể chỉ định một thư mục khác cho tập lệnh (s).
Định dạng tệp cho tệp điều khiển mở tỷ lệ kèo bóng đá giống như choPostgreSql.confTệp, cụ thể là Danh sáchtham số_name = giá trịBài tập, một trên mỗi dòng. Trống tỷ lệ kèo bóng đá dòng và nhận xét được giới thiệu bởi#15417_15504
Tệp điều khiển có thể đặt tỷ lệ kèo bóng đá tham số sau:
Thư mục chứa tiện ích mở tỷ lệ kèo bóng đáSQLTập tin tập lệnh. Trừ khi một con đường tuyệt đối được đưa ra, tên này liên quan đến Cài đặt củaSharedirThư mục. Hành vi mặc định tương đương với Chỉ địnhThư mục = 'sự mở tỷ lệ kèo bóng đá'.
Phiên bản mặc định của tiện ích mở tỷ lệ kèo bóng đá (phiên bản này sẽ được cài đặt nếu không có phiên bản nào được chỉ định trongTạo tiện ích mở tỷ lệ kèo bóng đá). Mặc dù điều này có thể bị bỏ qua, điều đó sẽ dẫn đếnTạo tiện ích mở tỷ lệ kèo bóng đáthất bại nếu khôngphiên bảnTùy chọn xuất hiện, vì vậy bạn nói chung không muốn làm điều đó.
Một bình luận (bất kỳ chuỗi nào) về phần mở tỷ lệ kèo bóng đá. Ngoài ra, nhận xét có thể được đặt bằng phương tiện củabình luậnLệnh trong Tệp tập lệnh.
Mã hóa bộ ký tự được sử dụng bởi (tỷ lệ kèo bóng đá) tệp tập lệnh. Điều này phải được chỉ định nếu tỷ lệ kèo bóng đá tệp tập lệnh chứa bất kỳ ký tự không phải là ASCII. Nếu không tỷ lệ kèo bóng đá tệp sẽ được giả định có trong mã hóa cơ sở dữ liệu.
Giá trị của tham số này sẽ được thay thế cho Mỗi lần xuất hiện củamodule_pathnameTrong (tỷ lệ kèo bóng đá) tệp tập lệnh. Nếu như Nó không được thiết lập, không có sự thay thế được thực hiện. Thông thường, cái này được đặt thành$ libdir/shared_l Library_namevà sau đómodule_pathnameđược sử dụng trongtạo chức nănglệnh cho tỷ lệ kèo bóng đá chức năng ngôn ngữ C, để tỷ lệ kèo bóng đá tệp tập lệnh không cần kết nối tên của thư viện được chia sẻ.
Một danh sách tên của các tiện ích mở tỷ lệ kèo bóng đá mà phần mở tỷ lệ kèo bóng đá này phụ thuộc vào, ví dụYêu cầu = 'foo, thanh'. Những tiện ích mở tỷ lệ kèo bóng đá đó phải được cài đặt Trước khi có thể cài đặt, nó có thể được cài đặt.
Nếu tham số này làTRUE(là mặc định), chỉ các siêu người dùng mới có thể tạo Tiện ích mở tỷ lệ kèo bóng đá hoặc cập nhật nó lên một phiên bản mới. Nếu nó được đặt thànhSai, Chỉ là tỷ lệ kèo bóng đá đặc quyền bắt buộc phải thực thi tỷ lệ kèo bóng đá lệnh trong cài đặt hoặc Cập nhật tập lệnh được yêu cầu.
Một tiện ích mở tỷ lệ kèo bóng đá làRelocatable19134_19295Sai, tức là Tiện ích mở tỷ lệ kèo bóng đá không thể chuyển vị. Xem bên dưới để biết thêm thông tin.
Tham số này chỉ có thể được đặt cho không thể phân phối phần mở tỷ lệ kèo bóng đá. Nó buộc phần mở tỷ lệ kèo bóng đá được tải vào Chính xác là lược đồ được đặt tên chứ không phải bất kỳ khác. Xem bên dưới cho Thêm thông tin.
19811_19853Mở tỷ lệ kèo bóng đá.control, một phần mở tỷ lệ kèo bóng đá có thể Có các tệp điều khiển thứ cấp có tên trong kiểuMở tỷ lệ kèo bóng đá--phiên bản.control. Nếu được cung cấp, những điều này Phải được đặt trong thư mục tập tin tập lệnh. Kiểm soát thứ cấp Các tệp theo định dạng giống như tệp điều khiển chính. Bất kì Các tham số được đặt trong tệp điều khiển thứ cấp ghi đè lên chính kiểm soát tệp khi cài đặt hoặc cập nhật phiên bản đó của sự mở tỷ lệ kèo bóng đá. Tuy nhiên, các tham sốThư mụcvàDefault_versionKhông thể được đặt ở thứ cấp Tệp điều khiển.
Một tiện ích mở tỷ lệ kèo bóng đáSQLtập lệnh tỷ lệ kèo bóng đá tệp có thể chứa bất kỳ lệnh SQL nào, ngoại trừ giao dịch tỷ lệ kèo bóng đá lệnh điều khiển (Bắt đầu, cam kết, v.v.) và tỷ lệ kèo bóng đá lệnh không thể được thực hiện bên trong một khối giao dịch (chẳng hạn nhưVACUUM). Điều này là do tỷ lệ kèo bóng đá tệp tập lệnh là được thực hiện ngầm trong một khối giao dịch.
Một tiện ích mở tỷ lệ kèo bóng đáSQLtập lệnh tỷ lệ kèo bóng đá tệp cũng có thể chứa tỷ lệ kèo bóng đá dòng bắt đầu bằng\ echo, sẽ bị bỏ qua (được coi là bình luận) bởi cơ chế mở tỷ lệ kèo bóng đá. Điều khoản này là thường được sử dụng để ném lỗi nếu tệp tập lệnh được đưa vàoPSQLthay vì được tải thông qua21448_21466(xem ví dụ kịch bản bên dưới). Không có điều đó, người dùng có thể vô tình tải Nội dung của tiện ích mở tỷ lệ kèo bóng đá là"Loose"đối tượng chứ không phải là một phần mở tỷ lệ kèo bóng đá, một trạng thái hơi tẻ nhạt để phục hồi từ.
Trong khi tỷ lệ kèo bóng đá tệp tập lệnh có thể chứa bất kỳ ký tự nào được phép mã hóa được chỉ định, tỷ lệ kèo bóng đá tệp điều khiển chỉ phải chứa đơn giản Ascii, vì không có cách nào choPostgreSQLĐể biết mã hóa điều khiển nào Tệp đang ở. Trong thực tế, đây chỉ là một vấn đề nếu bạn muốn Sử dụng các ký tự không phải ASCII trong nhận xét của tiện ích mở tỷ lệ kèo bóng đá. Thực hành được đề xuất trong trường hợp đó là không sử dụng điều khiển tài liệubình luậntham số, nhưng thay vào đó sử dụng22255_22277trong a tập tin tập lệnh để đặt nhận xét.
Người dùng thường muốn tải các đối tượng có trong một Mở tỷ lệ kèo bóng đá vào một lược đồ khác với tác giả của tiện ích mở tỷ lệ kèo bóng đá có trong tâm trí. Có ba cấp độ được hỗ trợ của Khả năng tái định cư:
Một tiện ích mở tỷ lệ kèo bóng đá có thể chuyển vị hoàn toàn có thể được chuyển vào một tiện ích khác lược đồ bất cứ lúc nào, ngay cả sau khi nó được tải vào cơ sở dữ liệu. Điều này được thực hiện vớiThay đổi Lược đồ tập mở tỷ lệ kèo bóng đálệnh, tự động Đổi tên tất cả các đối tượng thành viên thành lược đồ mới. Thông thường, điều này chỉ có thể nếu tiện ích mở tỷ lệ kèo bóng đá chứa Không có giả định nội bộ nào về sơ đồ nào trong số đó Các đối tượng đang ở. Ngoài ra, tất cả các đối tượng của tiện ích mở tỷ lệ kèo bóng đá phải trong một lược đồ để bắt đầu (bỏ qua các đối tượng không thuộc về bất kỳ lược đồ, chẳng hạn như ngôn ngữ thủ tục). Đánh dấu a Tiện ích mở tỷ lệ kèo bóng đá hoàn toàn có thể di chuyển bằng cách cài đặtRelocatable = trueTrong tệp điều khiển của nó.
23495_23725search_pathThuộc tính cho các hàm SQL. Đối với một tiện ích mở tỷ lệ kèo bóng đá như vậy, đặtcó thể chuyển vị = falseTrong tệp điều khiển của nó và sử dụng@extschema@Để tham khảo lược đồ đích trong tập tin tập lệnh. Tất cả tỷ lệ kèo bóng đá lần xuất hiện của chuỗi này sẽ được thay thế bằng tên của lược đồ mục tiêu thực tế trước tập lệnh được thực thi. Người dùng có thể đặt lược đồ đích Sử dụnglược đồTùy chọnTạo tiện ích mở tỷ lệ kèo bóng đá.
Nếu tiện ích mở tỷ lệ kèo bóng đá hoàn toàn không hỗ trợ di dời, SETRelocatable = falseTrong điều khiển của nó Tệp và cũng được đặtlược đồđến Tên của lược đồ mục tiêu dự định. Điều này sẽ ngăn chặn việc sử dụng củalược đồTùy chọnTạo tiện ích mở tỷ lệ kèo bóng đá, trừ khi nó chỉ định Lược đồ giống nhau có tên trong tệp điều khiển. Sự lựa chọn này là thường cần thiết nếu tiện ích mở tỷ lệ kèo bóng đá chứa nội bộ các giả định về các tên lược đồ không thể thay thế bằng Sử dụng@extschema@. The@extschema@Cơ chế thay thế cũng có sẵn trong trường hợp này, mặc dù nó bị hạn chế Sử dụng vì tên lược đồ được xác định bởi điều khiển tài liệu.
Trong mọi trường hợp, tệp tập lệnh sẽ được thực thi bằngsearch_pathBan đầu được đặt để trỏ đến lược đồ đích; đó là,Tạo tiện ích mở tỷ lệ kèo bóng đáCó tương đương của điều này:
Đặt Local Search_Path thành @extschema @;
Điều này cho phép tỷ lệ kèo bóng đá được tạo bởi tệp tập lệnh vào lược đồ mục tiêu. Tệp tập lệnh có thể thay đổi25707_25720Nếu nó muốn, nhưng nói chung là không mong muốn.search_pathđược khôi phục đến cài đặt trước khi hoàn thànhTạo tiện ích mở tỷ lệ kèo bóng đá.
lược đồ đích được xác định bởilược đồtham số trong tệp điều khiển nếu đó là đưa ra, nếu không thì bởilược đồTùy chọn củaTạo tiện ích mở tỷ lệ kèo bóng đáNếu điều đó được đưa ra, nếu không thì lược đồ tạo đối tượng mặc định hiện tại (đầu tiên một trong người gọisearch_path). Khi Tệp điều khiểnlược đồtham số là được sử dụng, lược đồ đích sẽ được tạo nếu nó chưa tồn tại, nhưng trong hai trường hợp khác, nó phải tồn tại.
Nếu có bất kỳ tiện ích mở tỷ lệ kèo bóng đá điều kiện tiên quyết nào được liệt kê trongYêu cầuTrong tệp điều khiển, mục tiêu của họ tỷ lệ kèo bóng đá lược đồ được gắn vào cài đặt ban đầu củasearch_path. Điều này cho phép các đối tượng của họ được có thể nhìn thấy tệp tập lệnh của tiện ích mở tỷ lệ kèo bóng đá mới.
Mặc dù tiện ích mở tỷ lệ kèo bóng đá không thể phân phối có thể chứa các đối tượng trải tỷ lệ kèo bóng đá trên nhiều lược đồ, nó thường được mong muốn Đặt tất cả các đối tượng có nghĩa là để sử dụng bên ngoài vào một lược đồ, được coi là lược đồ mục tiêu của tiện ích mở tỷ lệ kèo bóng đá. Như là Một sự sắp xếp hoạt động thuận tiện với cài đặt mặc định củasearch_pathTrong quá trình tạo Tiện ích mở tỷ lệ kèo bóng đá phụ thuộc.
27384_27660pg_dump. Nhưng hành vi đó là không mong muốn đối với một bảng cấu hình; bất kì Các thay đổi dữ liệu do người dùng thực hiện cần được đưa vào các bãi rác hoặc Phần mở tỷ lệ kèo bóng đá sẽ hoạt động khác nhau sau một bãi rác và Tải lại.
Để giải quyết vấn đề này, tệp tập lệnh của tiện ích mở tỷ lệ kèo bóng đá có thể đánh dấu A
bảng nó đã tạo dưới dạng bảng cấu hình, sẽ gây rapg_dumpĐể bao gồm cả bảng
Nội dung (không phải định nghĩa của nó) trong bãi rác. Để làm điều đó, hãy gọi
chức năngpg_extension_config_dump (regclass, text)
Sau khi tạo bảng, ví dụ
Tạo bảng my_config (văn bản chính, văn bản giá trị); Chọn pg_catalog.pg_extension_config_dump ('my_config', '');
Bất kỳ số lượng bảng nào cũng có thể được đánh dấu theo cách này.
Khi đối số thứ hai củapg_extension_config_dump
là một chuỗi trống,
Toàn bộ nội dung của bảng được đổ bởipg_dump. Điều này thường chỉ đúng nếu
Bảng ban đầu trống như được tạo bởi tiện ích mở tỷ lệ kèo bóng đá
kịch bản. Nếu có hỗn hợp dữ liệu ban đầu và do người dùng cung cấp
dữ liệu trong bảng, đối số thứ hai củapg_extension_config_dump
cung cấp AWHEREĐiều kiện chọn dữ liệu
bị bỏ rơi. Ví dụ: bạn có thể làm
Tạo bảng my_config (văn bản chính, văn bản giá trị, standard_entry boolean); Chọn pg_catalog.pg_extension_config_dump ('my_config', 'trong đó không tiêu chuẩn_entry');
và sau đó đảm bảo rằngStandard_entrychỉ đúng trong các hàng được tạo bởi tập lệnh của tiện ích mở tỷ lệ kèo bóng đá.
tỷ lệ kèo bóng đá tình huống phức tạp hơn, chẳng hạn như tỷ lệ kèo bóng đá hàng được cung cấp ban đầu điều đó có thể được sửa đổi bởi người dùng, có thể được xử lý bằng cách tạo kích hoạt trên bảng cấu hình để đảm bảo sửa đổi hàng được đánh dấu chính xác.
Bạn có thể thay đổi điều kiện bộ lọc được liên kết với A
Bảng cấu hình bằng cách gọipg_extension_config_dump
29861_30055Thay đổi
Tiện ích mở tỷ lệ kèo bóng đá ... Bàn thả.
Lưu ý rằng mối quan hệ khóa nước ngoài giữa các bảng này sẽ ra lệnh cho thứ tự mà các bảng được bỏ ra bởi pg_dump. Cụ thể, PG_DUMP sẽ cố gắng từ bỏ Bảng tham chiếu-theo bảng trước bảng tham chiếu. Như Các mối quan hệ quan trọng nước ngoài được thiết lập tại tạo thời gian mở tỷ lệ kèo bóng đá (trước khi dữ liệu được tải vào bảng) Sự phụ thuộc không được hỗ trợ. Khi phụ thuộc tròn tồn tại, dữ liệu vẫn sẽ được bỏ ra nhưng bãi rác sẽ không có thể được khôi phục trực tiếp và sự can thiệp của người dùng sẽ yêu cầu.
Một lợi thế của cơ chế mở tỷ lệ kèo bóng đá là nó cung cấp các cách thuận tiện để quản lý các bản cập nhật cho các lệnh SQL Xác định các đối tượng của một phần mở tỷ lệ kèo bóng đá. Điều này được thực hiện bằng cách liên kết một Tên phiên bản hoặc số với mỗi phiên bản được phát hành của Tập lệnh cài đặt của tiện ích mở tỷ lệ kèo bóng đá. Ngoài ra, nếu bạn muốn người dùng để có thể cập nhật cơ sở dữ liệu của họ một cách linh hoạt từ một Phiên bản sang phiên bản tiếp theo, bạn nên cung cấpCập nhật tập lệnhĐiều đó thực hiện tỷ lệ kèo bóng đá thay đổi cần thiết để đi từ phiên bản này sang phiên bản khác. Cập nhật tập lệnh có tên theo mẫuMở tỷ lệ kèo bóng đá--OldVersion--NewVersion.sql(ví dụ,foo--1.0--1.1.sqlchứa tỷ lệ kèo bóng đá lệnh để sửa đổi phiên bản1.0của sự mở tỷ lệ kèo bóng đáfoothành phiên bản1.1).
Cho rằng tập lệnh cập nhật phù hợp có sẵn, yêu cầuCập nhật mở tỷ lệ kèo bóng đá thay đổiWill Cập nhật tiện ích mở tỷ lệ kèo bóng đá được cài đặt cho phiên bản mới được chỉ định. Các Cập nhật tập lệnh được chạy trong cùng một môi trườngTạo tiện ích mở tỷ lệ kèo bóng đácung cấp cho cài đặt tập lệnh: đặc biệt,search_pathIS thiết lập theo cùng một cách và bất kỳ đối tượng mới nào được tạo bởi tập lệnh được tự động thêm vào phần mở tỷ lệ kèo bóng đá.
Nếu tiện ích mở tỷ lệ kèo bóng đá có các tệp điều khiển thứ cấp, điều khiển Các tham số được sử dụng cho tập lệnh cập nhật là được liên kết với phiên bản mục tiêu (mới) của tập lệnh.
Cơ chế cập nhật có thể được sử dụng để giải quyết một Trường hợp đặc biệt: Chuyển đổi A"Loose"Bộ sưu tập các đối tượng thành một phần mở tỷ lệ kèo bóng đá. Trước khi mở tỷ lệ kèo bóng đá cơ chế đã được thêm vàoPOSTGRESQL(trong 9.1), nhiều người đã viết các mô -đun mở tỷ lệ kèo bóng đá chỉ đơn giản là tạo các loại chưa đóng gói Đối tượng. Đưa ra một cơ sở dữ liệu hiện có chứa các đối tượng như vậy, Làm thế nào chúng ta có thể chuyển đổi các đối tượng thành một sự mở tỷ lệ kèo bóng đá? Bỏ chúng và sau đó làm một đơn giảnTạo tiện ích mở tỷ lệ kèo bóng đálà một cách, nhưng nó không phải mong muốn nếu các đối tượng có sự phụ thuộc (ví dụ, nếu Có các cột bảng của một loại dữ liệu được tạo bởi sự mở tỷ lệ kèo bóng đá). Cách khắc phục tình huống này là tạo ra một trống Tiện ích mở tỷ lệ kèo bóng đá, sau đó sử dụngmở tỷ lệ kèo bóng đá thay đổi THÊM VÀOĐể gắn từng đối tượng đã tồn tại trước vào phần mở tỷ lệ kèo bóng đá, sau đó cuối cùng tạo bất kỳ đối tượng mới nào trong hiện tại Phiên bản mở tỷ lệ kèo bóng đá nhưng không có trong bản phát hành chưa đóng gói.Tạo tiện ích mở tỷ lệ kèo bóng đáHỗ trợ trường hợp này với nótừ Old_VersionTùy chọn, điều này khiến nó phải không chạy tập lệnh cài đặt thông thường cho phiên bản đích, Nhưng thay vào đó là tập lệnh cập nhật có tênMở tỷ lệ kèo bóng đá--Old_Version--Target_Version.sql. Sự lựa chọn của Tên phiên bản giả để sử dụng làOld_VersionTùy thuộc vào phần mở tỷ lệ kèo bóng đá Tác giả, mặc dùGiải nénlà một phổ biến quy ước. Nếu bạn có nhiều phiên bản trước, bạn cần phải Có thể cập nhật vào kiểu mở tỷ lệ kèo bóng đá, sử dụng nhiều phiên bản giả tên để xác định chúng.
mở tỷ lệ kèo bóng đá thay đổiCó thể thực thi Trình tự tỷ lệ kèo bóng đá tệp tập lệnh cập nhật để đạt được bản cập nhật được yêu cầu. Ví dụ: nếu chỉfoo--1.0--1.1.sqlvàfoo--1.1--2.0.sqlCó sẵn,mở tỷ lệ kèo bóng đá thay đổisẽ áp dụng chúng trong Chuỗi nếu bản cập nhật lên phiên bản2.0được yêu cầu khi1.0hiện tại đã cài đặt.
POSTGRESQLkhông giả định Bất cứ điều gì về tỷ lệ kèo bóng đá thuộc tính của tên phiên bản: ví dụ, nó không biết liệu1.1theo sau1.0. Nó chỉ phù hợp với khả năng tên phiên bản và đi theo đường dẫn yêu cầu áp dụng ít tập lệnh cập nhật nhất. (Một tên phiên bản thực sự có thể là bất kỳ Chuỗi không chứa--hoặc Dẫn đầu hoặc theo dõi-.)
Đôi khi rất hữu ích khi cung cấp"hạ cấp"SCRIPTS, ví dụfoo--1.1--1.0.sqlĐể cho phép hoàn nguyên tỷ lệ kèo bóng đá thay đổi được liên kết với phiên bản1.135655_35841"Đường dẫn nhanh"35882_36222
Để kiểm tra tỷ lệ kèo bóng đá đường dẫn cập nhật không mong muốn, hãy sử dụng lệnh này:
Chọn * từ pg_extension_update_paths ('extension_name');
Điều này hiển thị từng cặp tên phiên bản đã biết riêng biệt cho Tiện ích mở tỷ lệ kèo bóng đá được chỉ định, cùng với chuỗi đường dẫn cập nhật điều đó sẽ được thực hiện để đi từ phiên bản nguồn đến Phiên bản mục tiêu hoặcnullNếu không có Đường dẫn cập nhật có sẵn. Đường dẫn được hiển thị ở dạng văn bản với--Dấu tách. Bạn có thể sử dụng36835_36869Nếu bạn thích một định dạng mảng.
Đây là một ví dụ hoàn chỉnh vềSQL37123_37242"K"và"V". tỷ lệ kèo bóng đá giá trị không theo văn bản được tự động ép buộc đến văn bản để lưu trữ.
Tệp tập lệnhcặp-- 1.0.sqlTrông như thế này:
37504_38440
Tệp điều khiểnPair.ControlTrông như thế này:
38566_38668
Trong khi bạn hầu như không cần một makefile để cài đặt hai tệp này Vào đúng thư mục, bạn có thể sử dụngMakefileChứa này:
Phần mở tỷ lệ kèo bóng đá = cặp Dữ liệu = cặp-- 1.0.sql Pg_config = pg_config Pgxs: = $ (shell $ (pg_config) -pgxs) Bao gồm $ (PGXS)
Makefile này dựa trênPGXS, được mô tả trongPhần 35.16. LệnhTạo cài đặtSẽ cài đặt điều khiển và tập lệnh tỷ lệ kèo bóng đá tệp vào thư mục chính xác như được báo cáo bởipg_config.
Sau khi cài đặt tỷ lệ kèo bóng đá tệp, hãy sử dụngTạo tiện ích mở tỷ lệ kèo bóng đáLệnh để tải tỷ lệ kèo bóng đá vào bất kỳ cơ sở dữ liệu cụ thể nào.