Odoo 17/18'den Odoo 19'a Geçiş: Tam Kılavuz
Odoo 19 Enterprise'a yükseltme, performansta, kullanıcı deneyiminde ve yapay zeka destekli özelliklerde önemli iyileştirmeler sağlar. Ancak geçiş, ERP yaşam döngüsündeki en yüksek riskli işlemlerden biridir; veri kaybı, bozulan özel modüller ve uzun süreli kesintiler, dikkatli planlama ve yürütme gerektiren gerçek risklerdir.
Bu kılavuz, Odoo 17 veya Odoo 18'den Odoo 19 Enterprise'a geçiş yapan kuruluşlar için pratik, adım adım geçiş metodolojisi sağlar. İlk değerlendirme ve veri eşlemesinden özel modül güncellemelerine, test prosedürlerine ve canlıya geçiş planına kadar her şeyi kapsar.
Önemli Çıkarımlar
- Odoo 19 geçişi, aynı anda bir ana sürümün yükseltilmesini gerektirir (17→18→19 veya 17→19 doğrudan OpenUpgrade ile)
- Özel modül uyumluluğu Odoo 19'un API değişikliklerine göre doğrulanmalıdır
- Veri taşıma, Odoo'nun resmi yükseltme platformu veya OpenUpgrade aracılığıyla gerçekleştirilir
- Üretime geçmeden önce paralel bir test ortamı zorunludur
- Karmaşıklığa bağlı olarak 3-8 haftalık toplam geçiş zaman çizelgesini planlayın
- Mutabakat sorunlarını önlemek için geçiş öncesinde mali dönemler kapatılmalıdır
- Tüm üçüncü taraf entegrasyonlarının geçişten sonra yeniden doğrulanması gerekir
- Geri alma planı hayata geçirilmeden önce belgelenmeli ve test edilmelidir
Geçiş Planlaması: Değerlendirme Aşaması
Tek bir geçiş komut dosyası yazmadan önce kapsamlı değerlendirmeye zaman ayırın. Taşıma işlemleri çoğunlukla teknik karmaşıklıktan değil, yetersiz planlamadan dolayı başarısız olur.
1. Adım: Mevcut ortamınızın envanterini çıkarın
Mevcut Odoo kurulumunuzun her bileşenini belgeleyin:
Current Environment Inventory:
- Odoo version: 17.0.x or 18.0.x
- Edition: Community or Enterprise
- Database size: X GB, Y records in sale.order, Z in account.move
- Installed modules: [list all modules]
- Custom modules: [list with developer contact]
- Third-party connectors: [Amazon, Shopify, etc.]
- Active integrations: [API, webhooks, cron jobs]
- Customized reports: [list]
- Custom fields (Studio or code): [list]
- Server specs: RAM, CPU, disk
- PostgreSQL version: (minimum 15 required for Odoo 19)
2. Adım: Özel modülleri sınıflandırın
Her özel modül için şunları belirleyin:
| Sınıflandırma | Tanımı | Taşıma Eylemi |
|---|---|---|
| Standart kullanım | Modül Odoo Marketplace'ten farklı değil | Odoo 19'u yeniden indirin |
| Hafifçe değiştirilmiş | Küçük alan eklemeleri, değişiklikleri görüntüleme | Güncelleme ve test etme |
| Büyük ölçüde özelleştirilmiş | İş açısından kritik Python mantığı | Tam geliştirici incelemesi |
| Kullanımdan kaldırıldı | İşlevsellik artık Odoo çekirdeğinde | Kaldır ve yeniden yapılandır |
| Uyumsuz | Kaldırılan Odoo 19 API'lerine bağlıdır | Yeniden yazma gerekli |
3. Adım: Odoo 19'daki son değişiklikleri belirleyin
Odoo 17/18 ile Odoo 19 arasında özel modülleri etkileyen önemli değişiklikler:
- OWL 3.x: Ön uç bileşenlerinin OWL 2.x modellerinden taşınması gerekir
- Python 3.12: Bazı Python 3.10/3.11 söz dizimlerinin ayarlanması gerekebilir
- PostgreSQL 15+: Gerekli minimum sürüm; bazı sorgu kalıpları değişiyor
- API'nin kullanımdan kaldırılması: Birkaç
_legacyyöntemi kaldırıldı;_multi→_create_multiolup olmadığını kontrol edin - Rapor motoru: Bazı QWeb rapor değişkenleri yeniden adlandırıldı
- Hesap taşımanın yeniden düzenlenmesi:
account.movesatır yapısı değişiklikleri muhasebe özelleştirmelerini etkiler
Geçiş Yolunuzu Seçme
Yol 1: Odoo Resmi Yükseltme Hizmeti
Odoo SA, upgrade.odoo.com adresinde otomatik yükseltme hizmeti sunmaktadır. Veritabanınızı gönderirsiniz, onlar Odoo SA tarafından geliştirilen ve bakımı yapılan geçiş komut dosyalarını çalıştırır ve siz de yükseltilmiş bir veritabanı alırsınız.
Artıları:
- Odoo SA tarafından resmi destek ve testler
- Veritabanı şeması değişikliklerini otomatik olarak yönetir
- Minimal özelleştirmelerle standart Odoo'ya uygundur
Eksileri:
- Özel modülleri işlemez
- Üretim verilerinin Odoo sunucularına gönderilmesini gerektirir
- Geçiş süreci üzerinde sınırlı kontrol
- Özel modül geçişi sizin sorumluluğunuzdadır
Yol 2: OpenUpgrade (Topluluk Aracı)
OpenUpgrade, Topluluk ve Kurumsal için geçiş komut dosyaları sağlayan açık kaynaklı bir projedir.
# Clone OpenUpgrade for Odoo 19
git clone https://github.com/OCA/OpenUpgrade.git -b 19.0
# Install upgrade dependencies
pip install openupgradelib
# Run migration
python odoo-bin --config=upgrade.conf \
--update=all \
--load=base,web,openupgrade_framework
Yol 3: Verileri İçe Aktarmayla Yeni Yükleme
Yoğun biçimde özelleştirilmiş örnekler veya çok eski sürümler için:
- Yeni bir Odoo 19 Enterprise örneği kurun
- Tüm modülleri ve ayarları yeniden yapılandırın
- Kritik verileri eski sistemden dışarı aktarın
- Odoo'nun içe aktarma aracı veya özel geçiş komut dosyaları aracılığıyla içe aktarın
- Muhasebe için açılış bakiyelerini manuel olarak yeniden girin
Bu yol daha yavaştır ancak en temiz başlangıç noktasını sağlar.
Odoo 17/18 → 19 geçişlerinin çoğu için önerilir: Yol 1 veya 2'nin paralel özel modül yeniden geliştirme çalışmasıyla birleştirilmesi.
Göç Öncesi Hazırlık (1-2. Hafta)
Veritabanı hazırlığı:
-- Run on source database before export
-- Identify orphaned records
SELECT id, name FROM res_partner WHERE active = FALSE AND id NOT IN (
SELECT partner_id FROM sale_order
UNION SELECT partner_id FROM account_move
UNION SELECT partner_id FROM stock_picking
);
-- Archive old draft records (reduces migration time)
UPDATE sale_order SET active = FALSE
WHERE state = 'draft' AND date_order < NOW() - INTERVAL '2 years';
-- Verify accounting reconciliation
SELECT COUNT(*) FROM account_move_line
WHERE reconciled = FALSE AND debit != credit;
Yakın mali dönemler:
Taşımadan önce:
- Odoo Muhasebe'de geçerli aydan önceki tüm dönemleri kilitleyin
- Yaşlandırılmış alacak ve borç raporlarını çalıştırın ve farklılıkları uzlaştırın
- Geçiş tarihine kadar tüm banka ekstrelerinin mutabakatını yapın
- Geçmiş verilere dahil edilmesi gereken tüm taslak faturaları kaydedin
Her şeyi yedekleyin:
# PostgreSQL backup
pg_dump -h localhost -p 5433 -U odoo_user -Fc odoo_production > \
odoo_prod_backup_$(date +%Y%m%d_%H%M%S).dump
# Filestore backup (attachments, images)
tar -czf odoo_filestore_$(date +%Y%m%d).tar.gz \
/var/lib/odoo/.local/share/Odoo/filestore/
# Configuration backup
cp /etc/odoo/odoo.conf odoo_conf_backup_$(date +%Y%m%d).conf
Özel modül kodu incelemesi:
Her özel modül için bir uyumluluk kontrolü yapın:
# Check for deprecated patterns
grep -r "execute_kw" custom_modules/ # Still valid in v19
grep -r "browse\(\[" custom_modules/ # Should be browse(ids) not browse([ids])
grep -r "_multi" custom_modules/ # Check for renamed methods
grep -r "account\.move\.line\." custom_modules/ # Account refactoring affected
grep -r "@api\.one" custom_modules/ # Removed in v14, ensure not present
grep -r "@api\.multi" custom_modules/ # Removed in v14, ensure not present
Geçiş Ortamını Ayarlama (2-3. Hafta)
Altyapı kurulumu:
# Install Odoo 19 Enterprise on migration server
# Requirements: Ubuntu 22.04/24.04, PostgreSQL 15+, Python 3.12
# Install PostgreSQL 15+
sudo apt install postgresql-15 postgresql-contrib
# Install Python 3.12 and dependencies
sudo apt install python3.12 python3.12-dev python3.12-venv \
libxml2-dev libxslt1-dev libldap2-dev libsasl2-dev \
libtiff5-dev libjpeg8-dev libopenjp2-7-dev zlib1g-dev \
libfreetype6-dev liblcms2-dev libwebp-dev libharfbuzz-dev \
libfribidi-dev libxcb1-dev
# Clone Odoo 19 Enterprise
git clone https://github.com/odoo/odoo.git -b 19.0 /opt/odoo19
git clone https://github.com/odoo/enterprise.git -b 19.0 /opt/odoo19-enterprise
# Install Python dependencies
pip3.12 install -r /opt/odoo19/requirements.txt
Kaynak veritabanını taşıma sunucusuna geri yükleyin:
# Create target database
createdb -h localhost -U postgres odoo_migration_test
# Restore backup
pg_restore -h localhost -U postgres -d odoo_migration_test \
odoo_prod_backup_YYYYMMDD.dump
# Run Odoo upgrade
python3 /opt/odoo19/odoo-bin \
-d odoo_migration_test \
-u all \
--without-demo=all \
--stop-after-init
Özel Modül Geçişi (3-5. Haftalar)
Bu aşama en fazla zaman alan aşamadır. Her özel modül şunları gerektirir:
1. Manifest sürümünü güncelle:
# Change from:
'version': '17.0.1.0.0',
# To:
'version': '19.0.1.0.0',
2. Python uyumluluğunu güncelleyin:
# Old pattern (deprecated):
@api.multi
def my_method(self):
for record in self:
pass
# New pattern:
def my_method(self):
for record in self:
pass
3. Görünüm sözdizimini güncelleyin:
<!-- Old (v16 and earlier): -->
<field name="state" attrs="{'invisible': [('active', '=', False)]}"/>
<!-- New (v17+): -->
<field name="state" invisible="not active"/>
4. OWL bileşenlerini güncelleyin (varsa ön uç widget'ları):
OWL 3.x, reaktivite değişikliklerini sunar. Modülleriniz özel JavaScript widget'ları kullanıyorsa:
// Old OWL 2.x:
class MyWidget extends Component {
static template = 'MyModule.MyWidget';
willStart() { ... }
}
// New OWL 3.x:
class MyWidget extends Component {
static template = 'MyModule.MyWidget';
setup() {
onWillStart(async () => { ... });
}
}
5. Her modülü bağımsız olarak test edin:
# Install and test each custom module
python3 odoo-bin -d test_db -i my_custom_module --stop-after-init
python3 odoo-bin -d test_db --test-enable -u my_custom_module
Veri Doğrulama ve Test Etme (5-6. Haftalar)
Finansal veri doğrulama:
-- Verify balance sheet balances (assets = liabilities + equity)
SELECT
SUM(CASE WHEN account_type LIKE 'asset%' THEN balance ELSE 0 END) as assets,
SUM(CASE WHEN account_type LIKE 'liability%' THEN balance ELSE 0 END) as liabilities,
SUM(CASE WHEN account_type = 'equity' THEN balance ELSE 0 END) as equity
FROM account_account aa
JOIN account_move_line aml ON aml.account_id = aa.id
JOIN account_move am ON aml.move_id = am.id
WHERE am.state = 'posted';
Kayıt sayımı doğrulaması:
Kaynak ve taşınan veritabanı arasındaki kayıt sayılarını karşılaştırın:
# Run on both source and target to compare
models_to_check = [
'res.partner', 'product.template', 'product.product',
'sale.order', 'purchase.order', 'account.move',
'stock.quant', 'mrp.production', 'hr.employee'
]
for model in models_to_check:
count = env[model].search_count([])
print(f"{model}: {count}")
Kullanıcı kabul testi kontrol listesi:
- Tüm menülere ve gezinme öğelerine erişilebilir
- Temel iş akışları: satış siparişi → teslimat → fatura → ödeme
- Muhasebe: yevmiye kayıtları, banka mutabakatı, raporlar
- Envanter: makbuzlar, teslimatlar, stok değerlemesi
- Üretim: Malzeme Listesi, iş emirleri, kalite kontrolleri (varsa)
- İK: çalışanlar, izin yönetimi, maaş bordrosu (varsa)
- İş kullanıcıları tarafından doğrulanan özel modül işlevselliği
- Raporlar doğru bir şekilde oluşturuluyor ve geçiş öncesi çıktıyla eşleşiyor
- Aşamalandırmada test edilen harici entegrasyonlar (API, web kancaları)
Canlı Yayına Geçiş Planı (7-8. Hafta)
Kesim aralığı planlaması:
Minimum iş etkisine sahip bir geçiş aralığı seçin:
- Hafta sonu (çoğu işletme için cumartesi akşamından pazar sabahına kadar)
- Mali ayın sonu (açılış bakiyesi girişini kolaylaştırır)
- Resmi tatilden önceki son iş gününden sonra (ekstra ara süre)
Kesim kontrol listesi:
T-48 hours:
[ ] Final communication to all users about downtime window
[ ] Freeze all non-critical transactions in old system
[ ] Verify migration server is ready
[ ] Complete last data validation run
T-0 (Cutover Start):
[ ] Put old system in maintenance mode (disable user access)
[ ] Create final backup of production database
[ ] Run final migration on this backup
[ ] Verify record counts and financial balances
[ ] Test all critical workflows
[ ] DNS/URL cutover to new system
[ ] Smoke test from user devices (desktop, mobile)
T+2 hours (Go-Live Verification):
[ ] All users can log in
[ ] Create test sale order, confirm, ship, invoice
[ ] Verify email sending works
[ ] Check integrations are receiving/sending data
[ ] Monitor error logs for first 30 minutes
Geri alma planı:
Geçiş sırasında kritik sorunlar bulunursa:
- DNS'yi eski sunucuya geri döndürün (< 5 dakika)
- Kullanıcılar için eski sistemi yeniden etkinleştirin
- Bulunan tüm sorunları belgeleyin
- Geçiş takibi penceresini planlayın
Sıkça Sorulan Sorular
Odoo 17'den doğrudan Odoo 19'a geçebilir miyim, yoksa 18'den mi geçmeliyim?
Odoo'nun resmi yükseltme hizmetini kullanarak genellikle doğrudan 17'den 19'a geçebilirsiniz. Odoo SA'nın geçiş komut dosyaları, çoklu sürüm atlamalarını yönetir. OpenUpgrade ile mevcut geçiş komut dosyalarına bağlı olarak 17→18→19 adımlarını izlemeniz gerekebilir. İhtiyacınız olan belirli sürümler için her zaman OpenUpgrade deposunu kontrol edin.
Tipik bir Odoo geçişi ne kadar sürer?
Zaman çizelgesi büyük ölçüde özelleştirme düzeyine bağlıdır. Minimum özelleştirmeye sahip standart bir Odoo örneği: 2-3 hafta. Orta derecede özelleştirilmiş (5-10 özel modül): 4-6 hafta. Karmaşık entegrasyonlarla büyük ölçüde özelleştirilmiş: 8-16 hafta. Geçişin kendisi (veritabanı yükseltmesi) saatler sürer; Zaman test etme, modül güncellemeleri ve doğrulama aşamasındadır.
Taşıma sırasında Studio özelleştirmelerine ne olur?
Studio özelleştirmeleri standart Odoo verileri (görünümler, alanlar, otomasyonlar) olarak depolanır ve standart veritabanı yükseltme işlemi yoluyla taşınır. Ancak Odoo 19'un temel form yapısını değiştirmesi durumunda bazı görünüm özelleştirmelerinin manuel olarak incelenmesi gerekebilir. Taşıma sonrasında her zaman tüm Studio özelleştirmelerini test edin.
Geçiş sonrasında açılış bakiyelerini yeniden girmem gerekir mi?
Hayır, veritabanını doğrudan taşırsanız. Tüm geçmiş yevmiye kayıtları ve bakiyeler veritabanına aktarılır. "Verileri içe aktararak yeni kurulum" yolunu seçerseniz geçiş tarihi itibarıyla açılış bakiyelerini girmeniz gerekir; bu da muhasebe ekibinizle dikkatli bir koordinasyon gerektirir.
Odoo Enterprise lisansım sürüm 19'a aktarılacak mı?
Evet. Odoo Enterprise abonelikleri sürümden bağımsızdır. Yıllık aboneliğiniz, çalıştırdığınız sürümü kapsar. Odoo 19 Enterprise kodunu almak için Odoo'nun Git deposu üzerinden kurumsal kimlik bilgilerinizle erişmiyorsanız Odoo iş ortağınızla iletişime geçin.
Sonraki Adımlar
Odoo geçişleri iş sürekliliğini doğrudan etkileyen yüksek riskli projelerdir. Sorunsuz bir geçiş ile acılı bir geçiş arasındaki fark; hazırlık, uzmanlık ve sıkı bir test metodolojisine bağlıdır.
ECOSIRE, düzinelerce Odoo örneğini 13, 14, 15, 16, 17 ve 18 sürümlerinden Odoo 19 Enterprise'a başarıyla taşıdı. Geçiş metodolojimiz tam değerlendirmeyi, özel modül güncellemelerini, paralel testleri ve geri alma prosedürlerini içeren belgelenmiş bir geçiş planını kapsar.
ECOSIRE'den Odoo Geçiş Değerlendirmesi isteyin →
Mevcut ortamınızı değerlendireceğiz, tüm geçiş risklerini belirleyeceğiz ve sabit kapsamlı bir geçiş planı sunacağız, böylece ilk geçiş komut dosyası çalıştırılmadan önce tam olarak ne bekleyeceğinizi bileceksiniz.
Yazan
ECOSIRE Research and Development Team
ECOSIRE'da kurumsal düzeyde dijital ürünler geliştiriyor. Odoo entegrasyonları, e-ticaret otomasyonu ve yapay zeka destekli iş çözümleri hakkında içgörüler paylaşıyor.
İlgili Makaleler
Odoo Accounting vs QuickBooks: Detailed Comparison 2026
In-depth 2026 comparison of Odoo Accounting vs QuickBooks covering features, pricing, integrations, scalability, and which platform fits your business needs.
Case Study: eCommerce Migration to Shopify with Odoo Backend
How a fashion retailer migrated from WooCommerce to Shopify and connected it to Odoo ERP, cutting order fulfillment time by 71% and growing revenue 43%.
Case Study: Manufacturing ERP Implementation with Odoo 19
How a Pakistani auto-parts manufacturer cut order processing time by 68% and reduced inventory variance to under 2% with ECOSIRE's Odoo 19 implementation.