MoySklad
Odoo
amoCRM
Tizimlashtirish
Marketing
AI agentlar
BUline
MoySklad
Odoo
amoCRM
Систематизация
Маркетинг
Маркетинг: обзор
Стратегия и контент
Стратегия и планКонтент и SMM
Рекламные каналы
Google AdsYandex DirectРеклама в TelegramInstagram и FacebookМаркетплейсы
Органический рост
SEO
Измерение и аналитика
Аналитика и KPI
AI-агенты
BUline
Blog · Odoo

Maxsus modulli bazani yangilash: kodni moslash va upgrade skriptlar

Bazada maxsus modul boʻlsa, yangilash faqat baza masalasi boʻlmay qoladi: avval kod yangi versiyaga moslanadi. Maqola Odoo 20 hujjatiga tayanib oltita qadamni, upgrade skriptlarning vazifasi va uch bosqichini hamda ular qayerda ishlashini tushuntiradi.

23-oktabr, 2026Oʻqish: 8 daqiqaBUline tahririyati
Qisqacha

Odoo bazasida maxsus modul boʻlsa, uning yangi versiya uchun tayyor varianti chiqmaguncha baza yangilanmaydi. Hujjat tartibni shunday beradi: ishlanmalar toʻxtatiladi, kod avval boʻsh bazada, soʻng yangilangan bazada moslanadi. Maʼlumotni koʻchirish, nomi oʻzgargan maydonlarni saqlash va xatolarni tuzatish uchun upgrade skriptlar yoziladi. Bunday skript modul yangilanayotganda ishlaydi, shuning uchun modul versiyasi raqamini oshirib qoʻyish muhim.

Odoo hujjatida bitta jumla bor, uni ogohlantirish deb oʻqish kerak. Bazada maxsus modul boʻlsa, shu modulning yangi versiya uchun tayyor varianti paydo boʻlmaguncha baza yangilanmaydi. Yaʼni Odoo jamoasi standart qismni oʻzi yangilaydi, lekin sizning kodingizni yangilamaydi, shuning uchun kod bilan bogʻliq ish butunlay sizning tomoningizda qoladi. Bu ish kimning zimmasida, qaysi tartibda bajariladi va qayerda xato qilish oson? Maqola shu savollarga javob beradi.

Maxsus modul nima va kim javobgar

Hujjat maxsus modulni shunday taʼriflaydi: Odoo ning standart kodini kengaytiradigan va Studio vositasi bilan yaratilmagan har qanday modul. Studio da kod yozmasdan qilingan sozlama bu taʼrifga kirmaydi, javobgarlik ham shu chegara boʻyicha boʻlinadi.

Enterprise obunasidagi yangilash xizmati standart ilovalarni, Studio dagi sozlamalarni va alohida qoʻllab-quvvatlash obunasi bor ishlanmalarni qamrab oladi. Ichkarida yoki uchinchi tomon yozgan, shartnomasi yoʻq modullar bu xizmatga kirmaydi. Hujjat yana bir narsani ochiq yozadi: yangi versiya maxsus modulni buzsa, uni yangi versiyaga moslash modul qoʻllab-quvvatchisining ishi. Demak, qoʻllab-quvvatchi kim ekanini yangilashdan oldin bilish kerak.

Oltita qadam

Maxsus bazani yangilash tartibi hujjatda oltita qadamga boʻlingan:

  1. Ishlanmalarni toʻxtatish va ularni savol ostiga olish.
  2. Yangilangan test bazani soʻrash.
  3. Modulni boʻsh bazada oʻrnatiladigan qilish.
  4. Modulni yangilangan bazada ishlaydigan qilish.
  5. Puxta sinash va mashq oʻtkazish.
  6. Ishchi bazani yangilash.

Ketma-ketlikning mantigʻi shunday: avval kodning yangi versiyada umuman yuklanishini tekshiramiz, keyin haqiqiy maʼlumot bilan ishlashini. Buni teskari qilsak, xatolarning sababini topish qiyinlashadi, chunki kod xatosi va maʼlumot xatosi aralashib ketadi.

Birinchi qadam: ishlanmani toʻxtatish va qayta koʻrib chiqish

Hujjat kod omborini toʻliq muzlatishni tavsiya qiladi. Aks holda har yangi oʻzgarish yana yangilanadi va qaytadan sinaladi, shuning uchun bundan faqat xatolarni tuzatish mustasno. Muzlatilgan davrda bajariladigan ish ham aniq: mavjud ishlanmalarni yangi versiyadagi imkoniyatlar bilan solishtirish va iloji boricha kodsiz yechim topish.

Bu qadam vaqt oladi, lekin natijasi katta, chunki standart Odoo ga allaqachon kirgan funksiya uchun maxsus kodni qoldirish ortiqcha yuk. Hujjatning fikricha, ortiqchalikni olib tashlash yangilashni yengillashtiradi va texnik qarzni kamaytiradi. Solishtirish uchun reliz eslatmalari ishlatiladi. Masalan, Odoo 20 da xodimlarning xarajatlari uchun alohida menyu olib tashlandi, hisoblar guruhlari oʻrniga ota-hisoblar kirdi, aktivlar modellari amortizatsiya modellariga almashdi. Maxsus kod shu joylarga tayansa, uni birinchi navbatda koʻrib chiqish kerak.

Yangi versiyada kod darajasida nima oʻzgaradi

Maxsus kod uchun eng muhim hujjat ORM oʻzgarishlar roʻyxati. Unda har versiyada dasturchilar ishlatadigan qatlamga kiritilgan oʻzgarishlar yoziladi, muhimi shuki, roʻyxat Online ning oraliq versiyalarini ham qamrab oladi. 18.0 dan 20.0 ga oʻtayotgan modul 19.0 dan 19.4 gacha boʻlgan hamma oʻzgarishni birdaniga oladi. Bu tahririyat xulosasi, roʻyxatning oʻzi bunday deb yozmaydi.

ORM oʻzgarishlaridan tanlama, Odoo 20.0 hujjati boʻyicha. Uchinchi ustun tahririyat xulosasi.
VersiyaOʻzgarishNimani tekshirish kerak
19.0Eski ichki paket va yozuv orqali kursorga, kontekst va foydalanuvchiga murojaat eskirgan deb belgilandiEskirgan chaqiruvlar
19.3Ikkilik maydonlarning turi yangi obyektga almashdiFayl va rasm maydonlari bilan ishlash
19.4Kirish huquqlari va yozuv qoidalari birlashgan yangi mexanizm, yangi HTTP serverMaxsus huquq qoidalari
20.0Ikkilik maydonlar uzatish formati va fayl nomi oʻzgardi, jadval soʻrovini beruvchi usul olib tashlandiHisobot va eksport kodi

Ikkinchi qadam: standart yangilash ishlayaptimi

Kod muzlatilgach, Odoo dan yangilangan test baza soʻraladi. Bu bosqichning maqsadi maxsus modul bilan ishlash emas. Hujjatga koʻra, maqsad standart yangilash jarayoni xatosiz oʻtishini va test baza oʻz vaqtida yetib kelishini tekshirish. Yangilash muvaffaqiyatsiz tugasa, Odoo yordami yangilash testi uchun alohida murojaat orqali soʻraladi. Hujjat shu ikki ishni parallel yuritishni tavsiya qiladi: test baza tayyorlanayotgan paytda modul kodi moslanaveradi.

Uchinchi qadam: boʻsh bazada oʻrnatish

Yangilangan test bazani olishdan oldin modul yangi versiyaning boʻsh bazasida oʻrnatiladi. Sababi ikkita. Birinchidan, kod yangi versiyaga mosligi aniq koʻrinadi. Ikkinchidan, ishchi bazaning boshqa dogʻlari, yaʼni Studio sozlamalari, sayt sahifalari, pochta shablonlari va tarjimalari aralashmaydi. Modullar bittadan oʻrnatilib, har biridagi xato va ogohlantirish tuzatiladi.

Odatda quyidagi muammolar chiqadi:

  • Notoʻgʻri modul bogʻliqliklari.
  • Interfeys fayllari va koʻrinish sintaksisining oʻzgarishi.
  • Nomi oʻzgargan yoki yoʻq boʻlgan standart maydon, model va koʻrinishlarga murojaat.
  • Koʻrinishda joyi koʻchgan yoki olib tashlangan bogʻlanish nuqtalari.
  • Nomi oʻzgargan yoki olib tashlangan usullar.

Oʻrnatish xatosiz tugagani ishlash xatosiz ekanini bildirmaydi. Hujjat koʻrinishlar, pochta shablonlari, hisobotlar, avtomatik harakatlar, standart jarayonlardagi oʻzgarishlar va hisoblanuvchi maydonlarni alohida sinashni tavsiya qiladi. Avtomatik testlar yozilgan boʻlsa, ular yangi versiyaga moslanib, yana ishga tushiriladi. Keyin kod tozalanadi: ortiqcha, standartga kirib ketgan va izohga olingan kodlar olib tashlanadi, standart testlar esa modul bogʻliqliklari boʻyicha muvaffaqiyatli oʻtishi kerak.

Toʻrtinchi qadam: maʼlumot va upgrade skriptlar

Boʻsh bazada hammasi yaxshi boʻlgach, kod yangilangan bazada sinaladi. Yangilangan bazada kod bilan maʼlumot uchrashadi, va oʻsha yerda tuzilma farqlari chiqadi. Ularni upgrade skriptlar hal qiladi. Skript — Python tilida yozilgan fayl, uning ichida bitta funksiya bor, yangilash jarayoni uni modul yangilanayotganda chaqiradi. Funksiya bazaga SQL soʻrov yuborishi mumkin, ORM va Odoo ning yordamchi kutubxonasidan ham foydalanadi.

Skriptlar modul ichidagi maxsus papkada saqlanadi. Papka ichida versiya nomli boʻlim bor, versiya Odoo ning asosiy versiyasidan va modulning kichik versiyasidan iborat, masalan 17.0.2.0. Fayl nomining boshlanishi skript qaysi bosqichda ishlashini belgilaydi. Qoida muhim: skript faqat modul yangilanayotganda ishlaydi, boʻlimdagi versiya esa oʻrnatilgan versiyadan yuqori va yangilanadigan versiyadan oshmasligi kerak. Modul versiyasi raqami oshirilmasa, skript ishlamaydi.

Upgrade skriptlarning uch bosqichi. Misol ustuni qisman tahririyat tavsifi.
BosqichQachon ishlaydiMisol
PreModul yuklanishidan oldinEski nomdagi maʼlumotni saqlab qolish
PostModul va uning bogʻliqliklari yuklanib, yangilangandan keyinHamma ustun mavjud boʻlganda maʼlumotni koʻchirish
EndShu versiya uchun barcha modullar yangilangachUmumiy yakuniy tuzatishlar

Bir bosqich ichida fayllar nomining alifbo tartibida bajariladi. Hujjat murakkab misol keltiradi: Odoo 15 dan 16 ga oʻtganda obuna modeli sotuv buyurtmasiga qoʻshildi va maxsus maydonlar avtomatik koʻchmadi, ularni SQL soʻrov bilan eski jadvaldan yangisiga oʻtkazish kerak boʻldi. Soʻrov post bosqichida yozildi, chunki barcha ustunlar shu vaqtga kelib mavjud boʻladi.

Yana bir gipotetik misol. Aytaylik, maxsus modul mijoz kartasiga qarz chegarasi maydonini qoʻshgan va yangi versiyada maydon nomini oʻzgartirmoqchisiz. Baza eski va yangi nomni ikki alohida maydon deb biladi, shuning uchun skriptsiz eski qiymatlar eski maydonda qoladi, yangisi esa boʻsh chiqadi. Hujjat shu sababli nomi oʻzgargan modellar, maydonlar va tashqi identifikatorlarni skript bilan qayta nomlashni talab qiladi.

Skriptlarning boshqa vazifalari ham bor:

  • Juda koʻp yozuvli modelda hisoblanuvchi maydon qiymatini SQL bilan saqlab, yangilash vaqtini qisqartirish.
  • Hisoblash usuli oʻzgargan maydonlarni qayta hisoblash.
  • Keraksiz maxsus modullarni oʻchirish.
  • Xato maʼlumot yoki notoʻgʻri sozlamani tuzatish.

Koʻp ishlar uchun tayyor kutubxona bor. Bu Odoo ning oʻzi standart modullarda ishlatadigan upgrade utils. U GitHub da ochiq ombor sifatida turadi, LGPL-3 litsenziyasiga ega va Odoo 7.0 dan hozirgi versiyagacha ishlashga moʻljallangan. Kutubxona maydon, model va tashqi identifikatorlarni qayta nomlash, maydonlarni qayta hisoblash, modulni oʻchirish kabi amallarni tayyor funksiya sifatida beradi va bilvosita bogʻlangan yozuvlarni ham izchil qoldiradi. Odoo.sh da uni omborning talablar roʻyxatiga qoʻshish tavsiya etiladi.

Skriptlar qayerda ishlaydi

Bu hostingga bogʻliq. Online da ishlamaydi: Python fayli boʻlgan maxsus modul oʻrnatish u yerda taqiqlangan. Odoo.sh da test tarmogʻi yangilash rejimiga oʻtganda har yangi commit yangilangan zaxirani tiklaydi va maxsus modullarni yangilaydi, bu yangilashga skriptlar ham kiradi. Ishchi bazani yangilashda ham skriptlar platforma tomonidan bajariladi. Oʻz serverida yangilangan baza yuklanadi va maxsus modullar buyruq qatoridagi yangilash opsiyasi bilan yangilanadi.

Yangilangandan keyin ikki tekshiruv

Yangilangan bazada maxsus modul sinalganda hujjat ikki narsaga alohida eʼtibor beradi. Birinchisi, yangilash vaqtida muammo chiqargan koʻrinishlar oʻchirib qoʻyiladi, ular yangilash hisobotida koʻrsatiladi va keyin qayta yoqiladi yoki keraksiz boʻlsa olib tashlanadi, buning uchun ham skript tavsiya etiladi. Ikkinchisi, yangilanmaydi deb belgilangan yozuvlar modul yangilanganda ham oʻzgarmaydi. Yangi versiya talab qilgan oʻzgarish ularga skript bilan kiritiladi.

Beshinchi va oltinchi qadam: mashq va ishchi bazaga oʻtish

Modul yangilangan bazada ishlagach, yana bir sinov turi boshlanadi. Standart skriptlar ham, sizning bazangiz ham oʻzgarib turadi, shuning uchun test bazani vaqti-vaqti bilan qayta soʻrab turish kerak. Ishchi bazani yangilashdan bir kun oldin butun jarayonni toʻliq mashq qilib koʻrish tavsiya etiladi. Ishchi yangilash esa yangilash hujjatidagi hosting uchun tartib bilan oʻtadi.

Amalda nima qilish mumkin

Quyidagi qadamlar hujjat mantiqidan chiqarilgan, ularni tahririyat tavsiyasi deb oʻqing:

  • Maxsus modullar roʻyxatini tuzing va har biri uchun javobgar odamni, uning shartnomasi borligini aniqlang.
  • Har modul uchun savol bering: bu funksiya endi standart Odoo da bormi?
  • Modullarni yangi versiyaning boʻsh bazasida bittadan oʻrnatib, xatolar roʻyxatini yuriting.
  • Maʼlumotni oʻzgartiradigan har bir kod oʻzgarishi uchun alohida upgrade skript rejalashtiring.
  • Modul versiyasi raqamini oshirishni tekshiruv roʻyxatiga kiriting, aks holda skript ishlamaydi.
Manbalar haqida. Upgrade skriptlar hujjati 20.0 da yagona toʻliq qoʻllanma, lekin uning misollari Odoo 17 uchun yozilgan, maqolada faqat qoida olindi. ORM oʻzgarishlar roʻyxatida baʼzi yozuvlar Online ning oraliq versiyasi deb nomlangan, ular 20.0 asosiy versiyasiga kirgan deb hisoblandi, bu tahririyat xulosasi. Obuna modelining sotuv buyurtmasiga qoʻshilishi misoli hujjatdan olingan.
Oddiy tilda yakun

Maxsus modul yangilashda eng koʻp vaqt oladigan qism. Avval kod yangi versiyada ishlashi, keyin maʼlumot yangi tuzilmaga oʻtishi kerak va ikkalasi alohida tekshiriladi. Keyingi savol shu: sizdagi modullardan qaysi biri endi standart Odoo bilan almashtirilishi mumkin?

Asosiy atamalar

Maxsus modul
Kompaniya uchun alohida yozilgan, Odoo ning standart kodini kengaytiradigan qoʻshimcha modul.
Upgrade skript
Yangilash vaqtida maʼlumotni yangi tuzilmaga moslaydigan kichik dastur.
Boʻsh baza
Hech qanday kompaniya maʼlumoti yoʻq, yangi oʻrnatilgan baza. Kodning yangi versiyaga mosligini tekshirishga qulay.
Test baza
Ishchi bazaning yangilangan nusxasi, unda jarayonlar xavfsiz sinab koʻriladi.
Studio
Kod yozmasdan maydon va jarayon qoʻshish uchun Odoo ning ichki vositasi.
ORM
Dasturchi baza jadvallari bilan Odoo orqali ishlaydigan qatlam.
Texnik qarz
Bugun qulay boʻlgani uchun qoldirilgan, lekin keyinroq ortiqcha ish keltiradigan kod.
Mashq
Ishchi yangilashdan oldin butun jarayonni nusxada oxirigacha oʻtkazib koʻrish.
Qoʻllab-quvvatchi
Maxsus modulni yangi versiyaga moslashga javob beradigan kishi yoki tashkilot.
Tashqi identifikator
Odoo ichidagi yozuvga barqaror nom berish usuli. Kod shu nom orqali yozuvni topadi.

Manbalar

Maqola quyidagi manbalarga tayanadi:

#odoo#upgrade#maxsus_modul#upgrade_skript#odoo_20#migratsiya#texnik_qarz#versiya_yangilash
Shu yoʻnalishda

Odoo: oʻqishda davom eting

OdooOdoo moduli qanday tuziladi: manifest, bogʻliqliklar va maʼlumot fayllari

Odoo da hisob-faktura ham, Oʻzbekiston hisob rejasi ham alohida modul sifatida oʻrnatiladi. Modul nimadan iborat, ilovadan nimasi bilan farq qiladi va uning pasporti, yaʼni manifest nimani belgilaydi: Odoo 20.0 hujjatlari va haqiqiy misollar asosida.

15-oktabr, 2026 · 9 daqiqa
OdooOdoo da meros olish (inheritance): asosiy kodni oʻzgartirmasdan kengaytirish

Odoo ni moslashtirishning asosiy yoʻli standart kodni tahrirlash emas, uning ustiga yangi modul qoʻyishdir. Maqola model, koʻrinish va veb-soʻrovlarni qabul qiluvchi qismda meros qanday ishlashini va nega u versiya yangilashda tekshiruv talab qilishini koʻrsatadi. Asos: Odoo 20.0 hujjatlari va kodi.

15-oktabr, 2026 · 9 daqiqa
OdooOdoo ORM nima: model, maydon va yozuv qanday ishlaydi

ORM Odooʻdagi Python sinfini maʼlumotlar bazasi jadvaliga bogʻlaydi. Maqola model, maydon va yozuvlar toʻplami tushunchalarini, hisoblanadigan maydon, cheklov va keshni rasmiy hujjat asosida tushuntiradi. 19 va 20 versiyalardagi oʻzgarishlar jadvalda beriladi.

15-oktabr, 2026 · 8 daqiqa
OdooOdoo versiyasini yangilash: test baza, sinov va ishchi bazaga oʻtish

Odoo bazasini yangi asosiy versiyaga oʻtkazish bir tugma emas, yetti qadamli tartib. Maqola Odoo 20 hujjatiga tayanib test bazani qanday olish, nimani sinash va ishchi bazaga qachon oʻtish kerakligini tushuntiradi.

23-oktabr, 2026 · 8 daqiqa
OdooOdoo 20 da olib tashlangan yoki almashtirilgan funksiyalar

Odoo 20 yangiliklari tavsifida olib tashlangan va almashtirilgan imkoniyatlar bitta roʻyxatda emas, ilova boʻlimlari ichida tarqalgan. Maqola ularni yigʻib, qaysi biri oʻtishda jarayonni, hisobotni yoki maxsus sozlamani buzishi mumkinligini koʻrsatadi.

15-oktabr, 2026 · 9 daqiqa