30.4. ÐгÑаниÑениÑ
ÐогиÑеÑÐºÐ°Ñ ÑепликаÑÐ¸Ñ Ð² наÑÑоÑÑее вÑÐµÐ¼Ñ Ð¸Ð¼ÐµÐµÑ Ð¾Ð³ÑаниÑÐµÐ½Ð¸Ñ Ð¸ недоÑÑаÑки, опиÑаннÑе ниже. Ðни могÑÑ Ð±ÑÑÑ ÑÑÑÑÐ°Ð½ÐµÐ½Ñ Ð² бÑдÑÑÐ¸Ñ Ð²ÑпÑÑÐºÐ°Ñ .
Ð¡Ñ ÐµÐ¼Ð° Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¸ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ DDL не ÑеплиÑиÑÑÑÑÑÑ. ÐзнаÑалÑнÑÑ ÑÑ ÐµÐ¼Ñ Ð¼Ð¾Ð¶Ð½Ð¾ ÑкопиÑоваÑÑ, воÑполÑзовавÑиÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ð¹
pg_dump --schema-only. ÐоÑледÑÑÑие Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÑÑ ÐµÐ¼Ñ Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ бÑÐ´ÐµÑ ÑÐ¸Ð½Ñ ÑонизиÑоваÑÑ Ð²ÑÑÑнÑÑ. (ÐамеÑÑÑе, однако, ÑÑо ÑÑ ÐµÐ¼Ñ Ð½Ðµ обÑзаÑелÑно Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ Ð°Ð±ÑолÑÑно иденÑиÑнÑми на Ð¾Ð±ÐµÐ¸Ñ ÑÑоÑÐ¾Ð½Ð°Ñ ÑепликаÑии.) ÐÑли опÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ ÑÑ ÐµÐ¼Ñ Ð² иÑÑ Ð¾Ð´Ð½Ð¾Ð¹ базе даннÑÑ Ð¼ÐµÐ½ÑÑÑÑÑ, логиÑеÑÐºÐ°Ñ ÑепликаÑÐ¸Ñ ÑабоÑÐ°ÐµÑ Ð½Ð°Ð´Ñжно â когда даннÑе поÑле Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÑÑ ÐµÐ¼Ñ Ð¿ÑибÑваÑÑ Ð½Ð° ÑÑоÑÐ¾Ð½Ñ Ð¿Ð¾Ð´Ð¿Ð¸ÑÑика, но не впиÑÑваÑÑÑÑ Ð² ÑÑ ÐµÐ¼Ñ ÐµÐ³Ð¾ ÑаблиÑ, вÑдаÑÑÑÑ Ð¾Ñибка, ÑÑебÑÑÑÐ°Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÑÑ ÐµÐ¼Ñ. Ðо Ð¼Ð½Ð¾Ð³Ð¸Ñ ÑлÑÑаÑÑ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ½Ð¾Ð²ÐµÐ½Ð¸Ðµ ÑÐ°ÐºÐ¸Ñ Ð¾Ñибок можно пÑедÑпÑедиÑÑ, ÑнаÑала пÑименÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½ÑÑÑие Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð½Ð° подпиÑÑике.ÐаннÑе поÑледоваÑелÑноÑÑей не ÑеплиÑиÑÑÑÑÑÑ. ÐаннÑе в ÑÑолбÑÐ°Ñ serial или ÑÑолбÑÐ°Ñ Ð¸Ð´ÐµÐ½ÑиÑикаÑии, вÑдаваемÑе поÑледоваÑелÑноÑÑÑми, конеÑно, бÑдÑÑ ÑеплиÑиÑÐ¾Ð²Ð°Ð½Ñ Ð² ÑоÑÑаве ÑаблиÑÑ, но Ñама поÑледоваÑелÑноÑÑÑ Ð½Ð° подпиÑÑике бÑÐ´ÐµÑ ÑÐ¾Ñ ÑанÑÑÑ ÑÑаÑÑовое знаÑение. ÐÑли подпиÑÑик иÑполÑзÑеÑÑÑ Ð² каÑеÑÑве Ð±Ð°Ð·Ñ ÑолÑко Ð´Ð»Ñ ÑÑениÑ, обÑÑно ÑÑо не ÑвлÑеÑÑÑ Ð¿Ñоблемой. ÐÑли же, однако, пÑедÑÑмаÑÑиваеÑÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ Ð¿ÐµÑеклÑÑÐµÐ½Ð¸Ñ Ð½Ð° Ð±Ð°Ð·Ñ Ð¿Ð¾Ð´Ð¿Ð¸ÑÑика некоÑоÑÑм обÑазом, ÑекÑÑие знаÑÐµÐ½Ð¸Ñ Ð² ÑÑÐ¸Ñ Ð¿Ð¾ÑледоваÑелÑноÑÑÑÑ Ð½Ñжно бÑÐ´ÐµÑ Ð¾Ð±Ð½Ð¾Ð²Ð¸ÑÑ, либо ÑкопиÑовав ÑекÑÑие даннÑе из Ð±Ð°Ð·Ñ Ð¿ÑбликаÑии (веÑоÑÑно, Ñ Ð¿Ñименением
pg_dump), либо вÑбÑав доÑÑаÑоÑно болÑÑие знаÑÐµÐ½Ð¸Ñ Ð¸Ð· ÑÐ°Ð¼Ð¸Ñ ÑаблиÑ.ÐомандÑ
TRUNCATEне ÑеплиÑиÑÑÑÑÑÑ. РазÑмееÑÑÑ, ÑÑо можно обойÑи, вÑполнÑÑ Ð²Ð¼ÐµÑÑо Ð½Ð¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´ÑDELETE. ЧÑÐ¾Ð±Ñ Ð¿ÑедоÑвÑаÑиÑÑ ÑлÑÑайное вÑполнениеTRUNCATE, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе оÑозваÑÑ Ð¿ÑавоTRUNCATEÐ´Ð»Ñ ÑеплиÑиÑÑемÑÑ ÑаблиÑ.ÐолÑÑие обÑекÑÑ (Ñм. ÐлавÑ 32) не ÑеплиÑиÑÑÑÑÑÑ. ÐÑо огÑаниÑение нелÑÐ·Ñ Ð¾Ð±Ð¾Ð¹Ñи никак, кÑоме как Ñ ÑаниÑÑ Ð´Ð°Ð½Ð½Ñе в обÑÑнÑÑ ÑаблиÑÐ°Ñ .
РеплиÑиÑоваÑÑ Ð´Ð°Ð½Ð½Ñе возможно ÑолÑко из базовÑÑ ÑÐ°Ð±Ð»Ð¸Ñ Ð² базовÑе ÑаблиÑÑ. То еÑÑÑ ÑаблиÑÑ Ð½Ð° ÑÑоÑоне пÑбликаÑии и на ÑÑоÑоне подпиÑки Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ Ð¾Ð±ÑÑнÑми, а не пÑедÑÑавлениÑми, маÑ. пÑедÑÑавлениÑми, ÑекÑиониÑованнÑми или ÑÑоÑонними ÑаблиÑами. ÐÑо ознаÑаеÑ, ÑÑо Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе ÑеплиÑиÑоваÑÑ ÑекÑии Ð¾Ð´Ð½Ñ Ð² однÑ, но ÑеплиÑиÑоваÑÑ Ð´Ð°Ð½Ð½Ñе в ÑаблиÑÑ, ÑекÑиониÑованнÑе по-дÑÑгомÑ, нелÑзÑ. ÐÑи попÑÑке ÑеплиÑиÑоваÑÑ ÑаблиÑÑ, оÑлиÑнÑе Ð¾Ñ Ð±Ð°Ð·Ð¾Ð²ÑÑ , бÑÐ´ÐµÑ Ð²Ñдана оÑибка.