CREATE EXTENSION
CREATE EXTENSION â ÑÑÑановиÑÑ ÑаÑÑиÑение
СинÑакÑиÑ
CREATE EXTENSION [ IF NOT EXISTS ]имÑ_ÑаÑÑиÑениÑ[ WITH ] [ SCHEMAимÑ_ÑÑ ÐµÐ¼Ñ] [ VERSIONвеÑÑиÑ] [ FROMÑÑаÑаÑ_веÑÑиÑ]
ÐпиÑание
CREATE EXTENSION загÑÑÐ¶Ð°ÐµÑ Ð² ÑекÑÑÑÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
новое ÑаÑÑиÑение. РаÑÑиÑение Ñ Ñаким именем не должно бÑÑÑ Ñже загÑÑжено.
ÐагÑÑзка ÑаÑÑиÑÐµÐ½Ð¸Ñ Ð¿Ð¾ ÑÑÑи ÑводиÑÑÑ Ðº запÑÑÐºÑ ÑкÑипÑа ÑаÑÑиÑениÑ. ÐÑÐ¾Ñ ÑкÑÐ¸Ð¿Ñ Ð¾Ð±ÑÑно ÑоздаÑÑ Ð½Ð¾Ð²Ñе SQL-обÑекÑÑ, Ñакие как ÑÑнкÑии, ÑÐ¸Ð¿Ñ Ð´Ð°Ð½Ð½ÑÑ
, опеÑаÑоÑÑ Ð¸ меÑÐ¾Ð´Ñ Ð¿Ð¾Ð´Ð´ÐµÑжки индекÑов. CREATE EXTENSION дополниÑелÑно запиÑÑÐ²Ð°ÐµÑ Ð¸Ð´ÐµÐ½ÑиÑикаÑоÑÑ Ð²ÑеÑ
добавлÑемÑÑ
обÑекÑов, Ñак ÑÑо впоÑледÑÑвии иÑ
можно ÑдалиÑÑ, вÑполнив ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ DROP EXTENSION.
ÐÐ»Ñ Ð·Ð°Ð³ÑÑзки ÑаÑÑиÑÐµÐ½Ð¸Ñ ÑÑебÑÑÑÑÑ Ñе же пÑава, ÑÑо необÑ
Ð¾Ð´Ð¸Ð¼Ñ Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÑоÑÑавлÑÑÑиÑ
его обÑекÑов. ÐÐ»Ñ Ð±Ð¾Ð»ÑÑинÑÑва ÑаÑÑиÑений ÑÑо ознаÑаеÑ, ÑÑо необÑ
Ð¾Ð´Ð¸Ð¼Ñ Ð¿Ñава владелÑÑа Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
или ÑÑпеÑполÑзоваÑелÑ. ÐолÑзоваÑелÑ, запÑÑкаÑÑий CREATE EXTENSION, ÑÑановиÑÑÑ Ð²Ð»Ð°Ð´ÐµÐ»ÑÑем Ñамого ÑаÑÑиÑÐµÐ½Ð¸Ñ (ÑÑо ÑÑебÑеÑÑÑ Ð´Ð»Ñ Ð¿Ð¾ÑледÑÑÑиÑ
пÑовеÑок доÑÑÑпа), а Ñакже владелÑÑем вÑеÑ
обÑекÑов, ÑозданнÑÑ
ÑкÑипÑом ÑаÑÑиÑениÑ.
ÐаÑамеÑÑÑ
IF NOT EXISTSÐе ÑÑиÑаÑÑ Ð¾Ñибкой, еÑли ÑаÑÑиÑение Ñ Ñаким именем Ñже ÑÑÑеÑÑвÑеÑ. Ð ÑÑом ÑлÑÑае бÑÐ´ÐµÑ Ð²Ñдано замеÑание. ÐамеÑÑÑе, ÑÑо Ð½ÐµÑ Ð½Ð¸ÐºÐ°ÐºÐ¾Ð¹ гаÑанÑии, ÑÑо ÑÑÑеÑÑвÑÑÑее ÑаÑÑиÑение как-Ñо ÑооÑноÑиÑÑÑ Ñ Ñем, коÑоÑое могло Ð±Ñ Ð±ÑÑÑ Ñоздано из Ñказанного ÑкÑипÑа.
имÑ_ÑаÑÑиÑениÑÐÐ¼Ñ ÑÑÑанавливаемого ÑаÑÑиÑениÑ. Postgres Pro ÑоздаÑÑ ÑаÑÑиÑение, иÑполÑзÑÑ Ð¸Ð½ÑÑÑÑкÑии из Ñайла
SHAREDIR/extension/имÑ_ÑаÑÑиÑениÑ.control.имÑ_ÑÑ ÐµÐ¼ÑÐÐ¼Ñ ÑÑ ÐµÐ¼Ñ, в коÑоÑÑÑ Ð±ÑдÑÑ ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ñ Ð¾Ð±ÑекÑÑ ÑаÑÑиÑÐµÐ½Ð¸Ñ (подÑазÑмеваеÑÑÑ, ÑÑо ÑаÑÑиÑение позволÑÐµÑ ÑпÑавлÑÑÑ ÑазмеÑением ÑÐ²Ð¾Ð¸Ñ Ð¾Ð±ÑекÑов). Ð£ÐºÐ°Ð·Ð°Ð½Ð½Ð°Ñ ÑÑ ÐµÐ¼Ð° должна Ñже ÑÑÑеÑÑвоваÑÑ. ÐÑли Ð¸Ð¼Ñ Ð½Ðµ Ñказано и в ÑпÑавлÑÑÑем Ñайле ÑаÑÑиÑÐµÐ½Ð¸Ñ Ð¾Ð½Ð¾ Ñак же не задано, Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¾Ð±ÑекÑов иÑполÑзÑеÑÑÑ ÑекÑÑÐ°Ñ ÑÑ ÐµÐ¼Ð°.
ÐомниÑе, ÑÑо Ñамо ÑаÑÑиÑение не ÑÑиÑаеÑÑÑ Ð¿ÑинадлежаÑим какой-либо ÑÑ ÐµÐ¼Ðµ; имена ÑаÑÑиÑений не дополнÑÑÑÑÑ ÑÑ ÐµÐ¼Ð¾Ð¹ и поÑÐ¾Ð¼Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ ÑникалÑнÑми во вÑей базе даннÑÑ . Ðднако обÑекÑÑ, пÑинадлежаÑие ÑаÑÑиÑениÑм, могÑÑ Ð¾ÑноÑиÑÑÑÑ Ðº ÑÑ ÐµÐ¼Ð°Ð¼.
веÑÑиÑÐеÑÑÐ¸Ñ ÑÑÑанавливаемого ÑаÑÑиÑениÑ. ÐÑ Ð¼Ð¾Ð¶Ð½Ð¾ запиÑаÑÑ Ð² виде иденÑиÑикаÑоÑа или ÑÑÑокового знаÑениÑ. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð²ÐµÑÑÐ¸Ñ ÑÑиÑÑваеÑÑÑ Ð¸Ð· ÑпÑавлÑÑÑего Ñайла ÑаÑÑиÑениÑ.
ÑÑаÑаÑ_веÑÑиÑУказание
FROMÑÑаÑаÑ_веÑÑиÑÐ¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¾ Ñогда и ÑолÑко Ñогда, когда ÑÑÑанавливаемое ÑаÑÑиÑение заменÑÐµÑ Ð¼Ð¾Ð´ÑÐ»Ñ Â«ÑÑаÑого ÑÑилÑ», пÑедÑÑавлÑÑÑий Ñобой пÑоÑÑо Ð½Ð°Ð±Ð¾Ñ Ð¾Ð±ÑекÑов, не ÑпакованнÑй в ÑаÑÑиÑение. С ÑÑим ÑказаниемCREATE EXTENSIONзапÑÑÐºÐ°ÐµÑ Ð°Ð»ÑÑеÑнаÑивнÑй ÑÑÑановоÑнÑй ÑкÑипÑ, ÑобиÑаÑÑий вÑе ÑÑÑеÑÑвÑÑÑие обÑекÑÑ Ð² ÑаÑÑиÑение, а не ÑоздаÑÑий новÑе. УÑÑиÑе, ÑÑоSCHEMAпÑи ÑÑом опÑеделÑÐµÑ ÑÑ ÐµÐ¼Ñ, ÑодеÑжаÑÑÑ ÑÑи ÑÑÑеÑÑвÑÑÑие обÑекÑÑ.ÐнаÑение, задаваемое в каÑеÑÑве
ÑÑаÑой_веÑÑии, опÑеделÑеÑÑÑ Ð°Ð²ÑоÑом ÑаÑÑиÑÐµÐ½Ð¸Ñ Ð¸ Ð¼Ð¾Ð¶ÐµÑ Ð¼ÐµÐ½ÑÑÑÑÑ, еÑли в ÑаÑÑиÑение нÑжно пÑеобÑазоваÑÑ Ð½Ðµ Ð¾Ð´Ð½Ñ Ð²ÐµÑÑÐ¸Ñ Ð¼Ð¾Ð´ÑÐ»Ñ Ð² ÑÑаÑом ÑÑиле. ÐÐ»Ñ ÑÑандаÑÑнÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑÑ Ð¼Ð¾Ð´Ñлей, поÑÑавлÑемÑÑ Ð² PostgreSQL до веÑÑии 9.1, пÑи пÑеобÑазовании модÑÐ»Ñ Ð² ÑаÑÑиÑениеÑÑаÑаÑ_веÑÑиÑдолжна ÑодеÑжаÑÑ Ð·Ð½Ð°Ñениеunpackaged.
ÐамеÑаниÑ
ÐÑежде Ñем Ð²Ñ ÑможеÑе вÑполниÑÑ CREATE EXTENSION и загÑÑзиÑÑ ÑаÑÑиÑение в Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
, необÑ
одимо пÑавилÑно ÑÑÑановиÑÑ ÑопÑÑÑÑвÑÑÑие ÑÐ°Ð¹Ð»Ñ ÑаÑÑиÑениÑ. ÐнÑоÑмаÑÐ¸Ñ Ð¾Ð± ÑÑÑановке ÑаÑÑиÑений, поÑÑавлÑемÑÑ
в ÑоÑÑаве Postgres Pro, можно найÑи по ÑÑÑлке ÐополниÑелÑнÑе поÑÑавлÑемÑе модÑли.
РаÑÑиÑениÑ, доÑÑÑпнÑе Ð´Ð»Ñ ÑÑÑановки в даннÑй моменÑ, можно найÑи в ÑиÑÑемном пÑедÑÑавлении pg_available_extensions или pg_available_extension_versions.
Ðа инÑоÑмаÑией Ð´Ð»Ñ ÑазÑабоÑÑиков ÑаÑÑиÑений обÑаÑиÑеÑÑ Ðº РазделÑ 35.15.
ÐÑимеÑÑ
УÑÑановка ÑаÑÑиÑÐµÐ½Ð¸Ñ hstore в ÑекÑÑÑÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ :
CREATE EXTENSION hstore;
ÐÑеобÑазование ÑÑÑановленного до веÑÑии 9.1 модÑÐ»Ñ hstore в ÑаÑÑиÑение:
CREATE EXTENSION hstore SCHEMA public FROM unpackaged;
ÐÑдÑÑе внимаÑелÑÐ½Ñ â здеÑÑ Ð½Ñжно ÑказаÑÑ ÑÑ
емÑ, в коÑоÑÑÑ Ñанее бÑли ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ñ ÑÑÑеÑÑвÑÑÑие обÑекÑÑ hstore.
СовмеÑÑимоÑÑÑ
CREATE EXTENSION ÑвлÑеÑÑÑ ÑаÑÑиÑением Postgres Pro.